From 2a7fc15448b7e2e1f599419da0814aaffbeeae27 Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Sun, 4 Jul 2010 01:47:04 +0000 Subject: Theme Editor: WPS documents rendered within SBS documents can now set backdrops git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27269 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/graphics/rbrenderinfo.cpp | 8 ++++++-- utils/themeeditor/graphics/rbrenderinfo.h | 4 +++- utils/themeeditor/models/parsetreemodel.cpp | 4 ++-- utils/themeeditor/models/parsetreenode.cpp | 5 ++++- 4 files changed, 15 insertions(+), 6 deletions(-) (limited to 'utils/themeeditor') diff --git a/utils/themeeditor/graphics/rbrenderinfo.cpp b/utils/themeeditor/graphics/rbrenderinfo.cpp index 311603495c..0b9ea41397 100644 --- a/utils/themeeditor/graphics/rbrenderinfo.cpp +++ b/utils/themeeditor/graphics/rbrenderinfo.cpp @@ -23,9 +23,11 @@ RBRenderInfo::RBRenderInfo(ParseTreeModel* model, ProjectModel* project, QMap* settings, - DeviceState* device, RBScreen* screen) + DeviceState* device, RBScreen* screen, + RBScreen* sbsScreen) :mProject(project), mSettings(settings), - mDevice(device), mScreen(screen), mModel(model) + mDevice(device), mScreen(screen), + mSbsScreen(sbsScreen), mModel(model) { } @@ -40,6 +42,7 @@ RBRenderInfo::RBRenderInfo(const RBRenderInfo &other) mSettings = other.mSettings; mDevice = other.mDevice; mScreen = other.mScreen; + mSbsScreen = other.mSbsScreen; mModel = other.mModel; } @@ -49,6 +52,7 @@ const RBRenderInfo& RBRenderInfo::operator=(const RBRenderInfo& other) mSettings = other.mSettings; mDevice = other.mDevice; mScreen = other.mScreen; + mSbsScreen = other.mSbsScreen; mModel = other.mModel; return *this; diff --git a/utils/themeeditor/graphics/rbrenderinfo.h b/utils/themeeditor/graphics/rbrenderinfo.h index 0e219383e2..599a563da2 100644 --- a/utils/themeeditor/graphics/rbrenderinfo.h +++ b/utils/themeeditor/graphics/rbrenderinfo.h @@ -34,7 +34,7 @@ class RBRenderInfo public: RBRenderInfo(ParseTreeModel* model, ProjectModel* project, QMap* settings, DeviceState* device, - RBScreen* screen); + RBScreen* screen, RBScreen* sbsScreen = 0); RBRenderInfo(); RBRenderInfo(const RBRenderInfo& other); virtual ~RBRenderInfo(); @@ -45,6 +45,7 @@ public: DeviceState* device() const{ return mDevice; } QMap* settings() const{ return mSettings; } RBScreen* screen() const{ return mScreen; } + RBScreen* sbsScreen() const{ return mSbsScreen; } ParseTreeModel* model() const{ return mModel; } private: @@ -52,6 +53,7 @@ private: QMap* mSettings; DeviceState* mDevice; RBScreen* mScreen; + RBScreen* mSbsScreen; ParseTreeModel* mModel; }; diff --git a/utils/themeeditor/models/parsetreemodel.cpp b/utils/themeeditor/models/parsetreemodel.cpp index 47b24174b7..a04a0d9202 100644 --- a/utils/themeeditor/models/parsetreemodel.cpp +++ b/utils/themeeditor/models/parsetreemodel.cpp @@ -340,7 +340,7 @@ QGraphicsScene* ParseTreeModel::render(ProjectModel* project, } RBScreen* screen = 0; - RBRenderInfo info(this, project, &settings, device, screen); + RBRenderInfo info(this, project, &settings, device, screen, sbsScreen); /* Adding the screen */ if(sbsScreen) @@ -351,7 +351,7 @@ QGraphicsScene* ParseTreeModel::render(ProjectModel* project, if(!sbsScreen) scene->addItem(screen); - info = RBRenderInfo(this, project, &settings, device, screen); + info = RBRenderInfo(this, project, &settings, device, screen, sbsScreen); /* Rendering the tree */ diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp index 1fda29fec7..7efcbc3ffc 100644 --- a/utils/themeeditor/models/parsetreenode.cpp +++ b/utils/themeeditor/models/parsetreenode.cpp @@ -811,7 +811,10 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) case '\0': /* %X */ filename = QString(element->params[0].data.text); - info.screen()->setBackdrop(filename); + if(info.sbsScreen()) + info.sbsScreen()->setBackdrop(filename); + else + info.screen()->setBackdrop(filename); return true; } -- cgit v1.2.3