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 397031aee1..97beca4c3d 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)
98 98
99} 99}
100 100
101ParseTreeNode::~ParseTreeNode()
102{
103 for(int i = 0; i < children.count(); i++)
104 delete children[i];
105}
106
101QString ParseTreeNode::genCode() const 107QString ParseTreeNode::genCode() const
102{ 108{
103 QString buffer = ""; 109 QString buffer = "";
@@ -467,8 +473,28 @@ ParseTreeNode* ParseTreeNode::getParent() const
467 return parent; 473 return parent;
468} 474}
469 475
470ParseTreeNode::~ParseTreeNode() 476void ParseTreeNode::render(const RBRenderInfo& info)
471{ 477{
472 for(int i = 0; i < children.count(); i++) 478 /* Parameters don't get rendered */
473 delete children[i]; 479 if(!element && param)
480 return;
481
482 /* If we're at the root, we need to render each viewport */
483 if(!element && !param)
484 {
485 for(int i = 0; i < children.count(); i++)
486 {
487 children[i]->render(info);
488 }
489
490 return;
491 }
492
493 switch(element->type)
494 {
495 case VIEWPORT:
496 rendered = new RBViewport(element, info);
497 break;
498 }
474} 499}
500