diff options
| author | Robert Bieber <robby@bieberphoto.com> | 2010-06-23 07:18:22 +0000 |
|---|---|---|
| committer | Robert Bieber <robby@bieberphoto.com> | 2010-06-23 07:18:22 +0000 |
| commit | d3027053f955106708c5474d35cf41cd894bf450 (patch) | |
| tree | f29d7ff83cd7cb6c998809cecbad4bb6ff1ea1cb /utils/themeeditor/graphics/rbimage.cpp | |
| parent | a937b8ba0568bbd028791fb986d1ab7e41ab6f5b (diff) | |
| download | rockbox-d3027053f955106708c5474d35cf41cd894bf450.zip rockbox-d3027053f955106708c5474d35cf41cd894bf450.tar.gz rockbox-d3027053f955106708c5474d35cf41cd894bf450.tar.bz2 rockbox-d3027053f955106708c5474d35cf41cd894bf450.tar.xz | |
Theme Editor: Working on image rendering
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27083 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/graphics/rbimage.cpp')
| -rw-r--r-- | utils/themeeditor/graphics/rbimage.cpp | 52 |
1 files changed, 44 insertions, 8 deletions
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 <QPainter> +#include <QFile> +#include <QBitmap> #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)); } |