1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Robert Bieber 2010-06-21 20:11:58 +00:00
parent bd380b3993
commit e1d8a3dc63
11 changed files with 127 additions and 64 deletions

View file

@ -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;
}