diff options
Diffstat (limited to 'utils/themeeditor/parsetreenode.cpp')
-rw-r--r-- | utils/themeeditor/parsetreenode.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/utils/themeeditor/parsetreenode.cpp b/utils/themeeditor/parsetreenode.cpp index 6f6154039c..df4e770f9c 100644 --- a/utils/themeeditor/parsetreenode.cpp +++ b/utils/themeeditor/parsetreenode.cpp @@ -56,6 +56,7 @@ ParseTreeNode::ParseTreeNode(struct skin_element* data, ParseTreeNode* parent) } break; + case VIEWPORT: case CONDITIONAL: for(int i = 0; i < element->params_count; i++) children.append(new ParseTreeNode(&data->params[i], this)); @@ -70,7 +71,6 @@ ParseTreeNode::ParseTreeNode(struct skin_element* data, ParseTreeNode* parent) } break; - case VIEWPORT: case LINE: for(int i = 0; i < data->children_count; i++) { @@ -104,10 +104,23 @@ QString ParseTreeNode::genCode() const { case VIEWPORT: - buffer.append(children[0]->genCode()); - if(children[0]->element->type == TAG) + /* Generating the Viewport tag, if necessary */ + if(element->tag) + { + buffer.append(TAGSYM); + buffer.append(element->tag->name); + buffer.append(ARGLISTOPENSYM); + for(int i = 0; i < element->params_count; i++) + { + buffer.append(children[i]->genCode()); + if(i != element->params_count - 1) + buffer.append(ARGLISTSEPERATESYM); + } + buffer.append(ARGLISTCLOSESYM); buffer.append('\n'); - for(int i = 1; i < children.count(); i++) + } + + for(int i = element->params_count; i < children.count(); i++) buffer.append(children[i]->genCode()); break; |