From 75560845aad0cc8d1fccfeda5534489ca278ac80 Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Thu, 17 Jun 2010 06:59:46 +0000 Subject: Theme Editor: Working on renderer infrastructure git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26878 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/models/parsetreemodel.cpp | 14 ++++++++++++++ utils/themeeditor/models/parsetreemodel.h | 15 +++++++++++++++ utils/themeeditor/models/projectmodel.h | 5 ++++- 3 files changed, 33 insertions(+), 1 deletion(-) (limited to 'utils/themeeditor/models') diff --git a/utils/themeeditor/models/parsetreemodel.cpp b/utils/themeeditor/models/parsetreemodel.cpp index a709ea762f..0b80416d3a 100644 --- a/utils/themeeditor/models/parsetreemodel.cpp +++ b/utils/themeeditor/models/parsetreemodel.cpp @@ -36,6 +36,8 @@ ParseTreeModel::ParseTreeModel(const char* document, QObject* parent): this->root = new ParseTreeNode(tree); else this->root = 0; + + scene = new QGraphicsScene(); } @@ -264,3 +266,15 @@ bool ParseTreeModel::setData(const QModelIndex &index, const QVariant &value, emit dataChanged(index, index); return true; } + +QGraphicsScene* ParseTreeModel::render(ProjectModel* project) +{ + scene->clear(); + + /* First we set the screen size */ + int screenWidth = safeSetting(project, "#screenwidth", "300").toInt(); + int screenHeight = safeSetting(project, "#screenheight", "200").toInt(); + scene->addRect(0, 0, screenWidth, screenHeight); + + return scene; +} diff --git a/utils/themeeditor/models/parsetreemodel.h b/utils/themeeditor/models/parsetreemodel.h index 55af549e6c..1f252a3f20 100644 --- a/utils/themeeditor/models/parsetreemodel.h +++ b/utils/themeeditor/models/parsetreemodel.h @@ -21,12 +21,14 @@ #include "skin_parser.h" #include "skin_debug.h" +#include "projectmodel.h" #ifndef PARSETREEMODEL_H #define PARSETREEMODEL_H #include #include +#include #include "parsetreenode.h" @@ -58,9 +60,22 @@ public: Qt::ItemFlags flags(const QModelIndex &index) const; bool setData(const QModelIndex &index, const QVariant &value, int role); + QGraphicsScene* render(ProjectModel* project); + + static QString safeSetting(ProjectModel* project, QString key, + QString fallback) + { + if(project) + return project->getSetting(key, fallback); + else + return fallback; + } + + private: ParseTreeNode* root; struct skin_element* tree; + QGraphicsScene* scene; }; diff --git a/utils/themeeditor/models/projectmodel.h b/utils/themeeditor/models/projectmodel.h index 6623917420..791c07ea2e 100644 --- a/utils/themeeditor/models/projectmodel.h +++ b/utils/themeeditor/models/projectmodel.h @@ -44,7 +44,10 @@ public: int rowCount(const QModelIndex& parent) const; QVariant data(const QModelIndex &index, int role) const; - QString getSetting(QString key){ return settings.value(key, ""); } + QString getSetting(QString key, QString fallback = "") + { + return settings.value(key, fallback); + } signals: -- cgit v1.2.3