summaryrefslogtreecommitdiff
path: root/utils/themeeditor/models/parsetreemodel.cpp
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-06-21 20:11:58 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-06-21 20:11:58 +0000
commite1d8a3dc63391098f9381a3cb33d73e69b46c006 (patch)
tree0f503320d4fda330a003fe88ae7482537037db85 /utils/themeeditor/models/parsetreemodel.cpp
parentbd380b399323d15a1572cdc017e0f95b1b9db151 (diff)
downloadrockbox-e1d8a3dc63391098f9381a3cb33d73e69b46c006.zip
rockbox-e1d8a3dc63391098f9381a3cb33d73e69b46c006.tar.gz
rockbox-e1d8a3dc63391098f9381a3cb33d73e69b46c006.tar.bz2
rockbox-e1d8a3dc63391098f9381a3cb33d73e69b46c006.tar.xz
Theme Editor: Reworked information passing among render functions, now loads all viewports and shows Custom UI viewport in blue
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27026 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/models/parsetreemodel.cpp')
-rw-r--r--utils/themeeditor/models/parsetreemodel.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/utils/themeeditor/models/parsetreemodel.cpp b/utils/themeeditor/models/parsetreemodel.cpp
index 41cecc4..4e94bfa 100644
--- a/utils/themeeditor/models/parsetreemodel.cpp
+++ b/utils/themeeditor/models/parsetreemodel.cpp
@@ -29,6 +29,8 @@
#include <QObject>
#include <QPixmap>
+#include <QMap>
+#include <QDir>
ParseTreeModel::ParseTreeModel(const char* document, QObject* parent):
QAbstractItemModel(parent)
@@ -270,23 +272,40 @@ bool ParseTreeModel::setData(const QModelIndex &index, const QVariant &value,
return true;
}
-QGraphicsScene* ParseTreeModel::render(ProjectModel* project)
+QGraphicsScene* ParseTreeModel::render(ProjectModel* project,
+ const QString* file)
{
scene->clear();
/* Setting the background */
scene->setBackgroundBrush(QBrush(QPixmap(":/render/scenebg.png")));
+ /* Preparing settings */
+ QMap<QString, QString> settings;
+ if(project)
+ settings = project->getSettings();
+
+ /* Setting themebase if it can't be derived from the project */
+ if(settings.value("themebase", "") == "" && file && QFile::exists(*file))
+ {
+ QDir base(*file);
+ base.cdUp();
+ settings.insert("themebase", base.canonicalPath());
+ }
+
+ RBScreen* screen = 0;
+ RBRenderInfo info(this, project, &settings, screen);
+
/* Adding the screen */
- RBScreen* screen = new RBScreen(project);
+ screen = new RBScreen(info);
scene->addItem(screen);
- RBRenderInfo info(this, project, screen);
+ info = RBRenderInfo(this, project, &settings, screen);
+
/* Rendering the tree */
if(root)
root->render(info);
-
return scene;
}