qmlfrontend/previewimageprovider.cpp
changeset 14175 8354b390f1a2
parent 14174 b273b43b16d2
child 14176 8f82d87d223f
equal deleted inserted replaced
14174:b273b43b16d2 14175:8354b390f1a2
     1 #include "previewimageprovider.h"
       
     2 
       
     3 PreviewImageProvider::PreviewImageProvider()
       
     4     : QQuickImageProvider(QQuickImageProvider::Pixmap) {}
       
     5 
       
     6 QPixmap PreviewImageProvider::requestPixmap(const QString &id, QSize *size,
       
     7                                             const QSize &requestedSize) {
       
     8   Q_UNUSED(id);
       
     9   Q_UNUSED(requestedSize);
       
    10 
       
    11   if (size) *size = m_px.size();
       
    12 
       
    13   return m_px;
       
    14 }
       
    15 
       
    16 void PreviewImageProvider::setPixmap(const QByteArray &px) {
       
    17   QVector<QRgb> colorTable;
       
    18   colorTable.resize(256);
       
    19   for (int i = 0; i < 256; ++i) colorTable[i] = qRgba(255, 255, 0, i);
       
    20 
       
    21   const quint8 *buf = (const quint8 *)px.constData();
       
    22   QImage im(buf, 256, 128, QImage::Format_Indexed8);
       
    23   im.setColorTable(colorTable);
       
    24 
       
    25   m_px = QPixmap::fromImage(im, Qt::ColorOnly);
       
    26   // QPixmap pxres(px.size());
       
    27   // QPainter p(&pxres);
       
    28 
       
    29   // p.fillRect(pxres.rect(), linearGrad);
       
    30   // p.drawPixmap(0, 0, px);
       
    31 }