From d1a392a0e95b10fe9603fbd379a70b4cc0ddf22f Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Mon, 9 Aug 2010 19:37:23 +0000 Subject: 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 --- utils/themeeditor/models/parsetreenode.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'utils/themeeditor/models/parsetreenode.cpp') diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp index ac2556b..9cc73ce 100644 --- a/utils/themeeditor/models/parsetreenode.cpp +++ b/utils/themeeditor/models/parsetreenode.cpp @@ -31,6 +31,9 @@ #include #include +#include + +#include int ParseTreeNode::openConditionals = 0; bool ParseTreeNode::breakFlag = false; @@ -571,9 +574,12 @@ void ParseTreeNode::render(const RBRenderInfo &info, RBViewport* viewport, else if(element->type == CONDITIONAL) { int child = evalTag(info, true, element->children_count).toInt(); - if(child < children.count()) + int max = children.count() - element->params_count; + if(child < max) + { children[element->params_count + child] ->render(info, viewport, true); + } } else if(element->type == LINE_ALTERNATOR) { @@ -856,8 +862,6 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) int height = element->params[3].data.number; QString action(element->params[4].data.text); RBTouchArea* temp = new RBTouchArea(width, height, action, info); - x += viewport->x(); - y += viewport->y(); temp->setPos(x, y); return true; } @@ -914,10 +918,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) case '\0': /* %X */ filename = QString(element->params[0].data.text); - if(info.sbsScreen() && info.screen()->parentItem()) - info.sbsScreen()->setBackdrop(filename); - else - info.screen()->setBackdrop(filename); + info.screen()->setBackdrop(filename); return true; } -- cgit v1.1