qmlFrontend/previewimageprovider.cpp
author unc0rr
Sat, 27 Sep 2014 12:49:08 +0400
branchqmlfrontend
changeset 10424 4be6cd55f1cf
parent 10420 02c573d19224
child 10426 727a154cf784
permissions -rw-r--r--
- Get rid of engine's PathPrefix and UserPathPrefix - Some refactoring

#include "previewimageprovider.h"

PreviewImageProvider::PreviewImageProvider()
        : QQuickImageProvider(QQuickImageProvider::Pixmap)
{
}

QPixmap PreviewImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
{
    Q_UNUSED(id);
    Q_UNUSED(requestedSize);

    if (size)
        *size = m_px.size();

    return m_px;
}

void PreviewImageProvider::setPixmap(const QByteArray &px)
{
    if(px.size() == 128 * 256)
    {
        QVector<QRgb> colorTable;
        colorTable.resize(256);
        for(int i = 0; i < 256; ++i)
            colorTable[i] = qRgba(255, 255, 0, i);

        const quint8 *buf = (const quint8*) px.constData();
        QImage im(buf, 256, 128, QImage::Format_Indexed8);
        im.setColorTable(colorTable);

        m_px = QPixmap::fromImage(im, Qt::ColorOnly);
        //QPixmap pxres(px.size());
        //QPainter p(&pxres);

        //p.fillRect(pxres.rect(), linearGrad);
        //p.drawPixmap(0, 0, px);
    }
}