#include <QByteArray>
#include <QDebug>
#include "themeiconprovider.h"
#include "flib.h"
ThemeIconProvider::ThemeIconProvider()
: QQuickImageProvider(QQuickImageProvider::Image)
{
getThemeIcon = 0;
}
void ThemeIconProvider::setFileContentsFunction(getThemeIcon_t *f)
{
getThemeIcon = f;
}
QImage ThemeIconProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
{
Q_UNUSED(requestedSize);
if(!getThemeIcon)
return QImage();
QByteArray buf;
buf.resize(65536);
char * bufptr = buf.data();
uint32_t fileSize = getThemeIcon(id.toUtf8().data(), bufptr, buf.size());
buf.truncate(fileSize);
qDebug() << "ThemeIconProvider file size = " << fileSize;
QImage img = QImage::fromData(buf);
if (size)
*size = img.size();
return img;
}