From d3027053f955106708c5474d35cf41cd894bf450 Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Wed, 23 Jun 2010 07:18:22 +0000 Subject: Theme Editor: Working on image rendering git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27083 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/graphics/rbimage.cpp | 52 ++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 8 deletions(-) (limited to 'utils/themeeditor/graphics/rbimage.cpp') diff --git a/utils/themeeditor/graphics/rbimage.cpp b/utils/themeeditor/graphics/rbimage.cpp index 5105c95..16e6bcb 100644 --- a/utils/themeeditor/graphics/rbimage.cpp +++ b/utils/themeeditor/graphics/rbimage.cpp @@ -20,19 +20,55 @@ ****************************************************************************/ #include +#include +#include #include "rbimage.h" -RBImage::RBImage(QString file, int tiles) - :image(file), tiles(tiles) +RBImage::RBImage(QString file, int tiles, int x, int y, QGraphicsItem* parent) + : QGraphicsItem(parent), tiles(tiles), currentTile(0) { + if(QFile::exists(file)) + { + image = new QPixmap(file); + + if(image->isNull()) + { + delete image; + image = 0; + return; + } + else + { + image->setMask(image->createMaskFromColor(QColor(255,0,255))); + + } + + size = QRectF(x, y, image->width(), image->height() / tiles); + + } + else + image = 0; } -void RBImage::draw(QPainter *painter, int x, int y, int tile) +RBImage::~RBImage() { - if(tiles == 0) - painter->drawPixmap(x, y, image.width(), image.height(), image); - else - painter->drawPixmap(x, y, image, 0, tile * (image.height() / tiles), - image.width(), image.height() / tiles); + if(image) + delete image; +} + +QRectF RBImage::boundingRect() const +{ + return size; +} + +void RBImage::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, + QWidget *widget) +{ + if(!image) + return; + + painter->drawPixmap(size, *image, QRect(0, currentTile * image->height() + / tiles, image->width(), + image->height() / tiles)); } -- cgit v1.1