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:
parent
bd380b3993
commit
e1d8a3dc63
11 changed files with 127 additions and 64 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue