summaryrefslogtreecommitdiff
path: root/utils/themeeditor/graphics/rbimage.cpp
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-06-23 07:18:22 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-06-23 07:18:22 +0000
commitd3027053f955106708c5474d35cf41cd894bf450 (patch)
treef29d7ff83cd7cb6c998809cecbad4bb6ff1ea1cb /utils/themeeditor/graphics/rbimage.cpp
parenta937b8ba0568bbd028791fb986d1ab7e41ab6f5b (diff)
downloadrockbox-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.cpp52
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));
}