summaryrefslogtreecommitdiff
path: root/utils/themeeditor/models/parsetreenode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/themeeditor/models/parsetreenode.cpp')
-rw-r--r--utils/themeeditor/models/parsetreenode.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp
index 397031a..97beca4 100644
--- a/utils/themeeditor/models/parsetreenode.cpp
+++ b/utils/themeeditor/models/parsetreenode.cpp
@@ -98,6 +98,12 @@ ParseTreeNode::ParseTreeNode(skin_tag_parameter *data, ParseTreeNode *parent)
}
+ParseTreeNode::~ParseTreeNode()
+{
+ for(int i = 0; i < children.count(); i++)
+ delete children[i];
+}
+
QString ParseTreeNode::genCode() const
{
QString buffer = "";
@@ -467,8 +473,28 @@ ParseTreeNode* ParseTreeNode::getParent() const
return parent;
}
-ParseTreeNode::~ParseTreeNode()
+void ParseTreeNode::render(const RBRenderInfo& info)
{
- for(int i = 0; i < children.count(); i++)
- delete children[i];
+ /* Parameters don't get rendered */
+ if(!element && param)
+ return;
+
+ /* If we're at the root, we need to render each viewport */
+ if(!element && !param)
+ {
+ for(int i = 0; i < children.count(); i++)
+ {
+ children[i]->render(info);
+ }
+
+ return;
+ }
+
+ switch(element->type)
+ {
+ case VIEWPORT:
+ rendered = new RBViewport(element, info);
+ break;
+ }
}
+