1
0
Fork 0
forked from len0rd/rockbox

Theme Editor: Co Used a more efficient/less error-prone system for rendering SBS documents underneath WPS documents

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27765 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-08-09 19:37:23 +00:00
parent 77b682571f
commit d1a392a0e9
10 changed files with 71 additions and 45 deletions

View file

@ -316,7 +316,7 @@ RBScene* ParseTreeModel::render(ProjectModel* project,
}
/* Rendering SBS, if necessary */
RBScreen* sbsScreen = 0;
RBScreen* screen = 0;
if(wps && device->data("rendersbs").toBool())
{
QString sbsFile = settings.value(remote ? "rsbs" : "sbs", "");
@ -334,49 +334,37 @@ RBScene* ParseTreeModel::render(ProjectModel* project,
if(sbsModel->root != 0)
{
RBRenderInfo sbsInfo(sbsModel, project, doc, &settings, device,
sbsScreen);
screen);
sbsScreen = new RBScreen(sbsInfo, remote);
scene->addItem(sbsScreen);
screen = new RBScreen(sbsInfo, remote);
scene->addItem(screen);
sbsInfo = RBRenderInfo(sbsModel, project, doc, &settings,
device, sbsScreen);
device, screen);
sbsModel->root->render(sbsInfo);
screen->endSbsRender();
setChildrenUnselectable(sbsScreen);
setChildrenUnselectable(screen);
}
}
}
RBScreen* screen = 0;
RBRenderInfo info(this, project, doc, &settings, device, screen, sbsScreen);
RBRenderInfo info(this, project, doc, &settings, device, screen);
/* Adding the screen */
if(sbsScreen)
screen = new RBScreen(info, remote, sbsScreen->getCustomUI());
else
if(!screen)
{
screen = new RBScreen(info, remote);
if(!sbsScreen)
scene->addItem(screen);
}
info = RBRenderInfo(this, project, doc, &settings, device, screen,
sbsScreen);
info = RBRenderInfo(this, project, doc, &settings, device, screen);
/* Rendering the tree */
if(root)
root->render(info);
// /* Making sure the Custom UI Viewport can't be selected */
// if(sbsScreen)
// {
// sbsScreen->getCustomUI()->setFlag(QGraphicsItem::ItemIsSelectable,
// false);
// sbsScreen->getCustomUI()->setFlag(QGraphicsItem::ItemIsMovable,
// false);
// }
//
return scene;
}