X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui%2Fimagedelegate.cpp;h=e9069dad698ab4057cdc99e0f13e3ce5a4d60b7e;hb=b79e71ad6d2f71a2c1ccacb3d37ff02be60f2538;hp=6d81005b7c19924164f3e154d47c1dd53af27e8b;hpb=0231914da63ed8c44751d7c7ef07f8e311ae0db1;p=virtualjaguar diff --git a/src/gui/imagedelegate.cpp b/src/gui/imagedelegate.cpp index 6d81005..e9069da 100644 --- a/src/gui/imagedelegate.cpp +++ b/src/gui/imagedelegate.cpp @@ -17,12 +17,21 @@ #include "imagedelegate.h" #include "filedb.h" - +#include "filelistmodel.h" //ImageDelegate::ImageDelegate(QObject * parent): QAbstractItemDelegate(parent)//, pixelSize(12) //{ //} +ImageDelegate::ImageDelegate() +{ + QImage cartImg(":/res/cart-blank.png"); + QPainter painter(&cartImg); + painter.drawPixmap(23, 87, QPixmap(":/res/label-blank.png")); + painter.end(); + cartSmall = cartImg.scaled(488/4, 395/4, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); +} + /* Each item is rendered by the delegate's paint() function. The view calls this function with a ready-to-use QPainter object, style information that the delegate should use to correctly draw the item, and an index to the item in the model: */ @@ -74,11 +83,21 @@ The foreground of the item (the circle representing a pixel) must be rendered us // painter->drawPixmap(option.rect.x()+8, option.rect.y()+8, 200, 94, QPixmap(":/res/labels/rayman.jpg")); // painter->drawPixmap(option.rect.x()+13, option.rect.y()+51, 433/2, 203/2, QPixmap(":/res/labels/rayman.jpg")); // painter->drawPixmap(option.rect.x(), option.rect.y(), 488/2, 395/2, QPixmap(":/res/cart-blank.png")); - painter->drawPixmap(option.rect.x(), option.rect.y(), 488/4, 395/4, QPixmap(":/res/cart-blank.png")); + + + // This is crappy. We really should have a properly scaled image ready to go so we + // don't get Qt's default ugly looking fast scaling... +#warning "!!! FIX !!! Need to create properly scaled down cart/label images!" // unsigned long i = index.model()->data(index, Qt::DisplayRole).toUInt(); +#if 0 unsigned long i = index.model()->data(index, Qt::DisplayRole).toUInt(); QString filename = index.model()->data(index, Qt::EditRole).toString(); QImage label = index.model()->data(index, Qt::DecorationRole).value(); +#else + unsigned long i = index.model()->data(index, FLM_INDEX).toUInt(); + QString filename = index.model()->data(index, FLM_FILENAME).toString(); + QImage label = index.model()->data(index, FLM_LABEL).value(); +#endif #if 0 if (role == Qt::DecorationRole) @@ -93,7 +112,8 @@ The foreground of the item (the circle representing a pixel) must be rendered us if (label.isNull()) { // painter->drawPixmap(option.rect.x()+14, option.rect.y()+50, 433/2, 203/2, QPixmap(":/res/label-blank.png")); - painter->drawPixmap(option.rect.x()+7, option.rect.y()+25, 433/4, 203/4, QPixmap(":/res/label-blank.png")); +// painter->drawPixmap(option.rect.x()+7, option.rect.y()+25, 433/4, 203/4, QPixmap(":/res/label-blank.png")); + painter->drawImage(option.rect.x() + 2, option.rect.y() + 2, cartSmall); //Need to query the model for the data we're supposed to draw here... // painter->drawText(17, 73, QString(romList[i].name)); // painter->setPen(Qt::white); @@ -109,7 +129,8 @@ The foreground of the item (the circle representing a pixel) must be rendered us QImage img(filename); painter->drawImage(QRect(option.rect.x()+7, option.rect.y()+25, 433/4, 203/4), img); #else - painter->drawImage(QRect(option.rect.x()+7, option.rect.y()+25, 433/4, 203/4), label); + painter->drawPixmap(option.rect.x() + 2, option.rect.y() + 2, 488/4, 395/4, QPixmap(":/res/cart-blank.png")); + painter->drawImage(QRect(option.rect.x()+2+7, option.rect.y()+2+25, 433/4, 203/4), label); #endif } //26x100 @@ -134,7 +155,7 @@ QSize ImageDelegate::sizeHint(const QStyleOptionViewItem & /* option */, const Q // return QSize(100, 47); // return QSize(216, 110); // return QSize(488/2, 395/2); - return QSize(488/4, 395/4); + return QSize((488/4) + 4, (395/4) + 4); } /*