summaryrefslogtreecommitdiff
path: root/utils/themeeditor/parsetreenode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/themeeditor/parsetreenode.cpp')
-rw-r--r--utils/themeeditor/parsetreenode.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/utils/themeeditor/parsetreenode.cpp b/utils/themeeditor/parsetreenode.cpp
index 3a20b1e003..10f15dfd73 100644
--- a/utils/themeeditor/parsetreenode.cpp
+++ b/utils/themeeditor/parsetreenode.cpp
@@ -56,8 +56,13 @@ ParseTreeNode::ParseTreeNode(struct skin_element* data, ParseTreeNode* parent)
56 } 56 }
57 break; 57 break;
58 58
59 /* CONDITIONAL and SUBLINES fall through to the same code */
60 case CONDITIONAL: 59 case CONDITIONAL:
60 for(int i = 0; i < element->params_count; i++)
61 children.append(new ParseTreeNode(&data->params[i], this));
62 for(int i = 0; i < element->children_count; i++)
63 children.append(new ParseTreeNode(data->children[i], this));
64 break;
65
61 case SUBLINES: 66 case SUBLINES:
62 for(int i = 0; i < element->children_count; i++) 67 for(int i = 0; i < element->children_count; i++)
63 { 68 {
@@ -173,7 +178,7 @@ QString ParseTreeNode::genCode() const
173 break; 178 break;
174 179
175 case TEXT: 180 case TEXT:
176 for(char* cursor = element->text; *cursor; cursor++) 181 for(char* cursor = (char*)element->data; *cursor; cursor++)
177 { 182 {
178 if(find_escape_character(*cursor)) 183 if(find_escape_character(*cursor))
179 buffer.append(TAGSYM); 184 buffer.append(TAGSYM);
@@ -183,7 +188,7 @@ QString ParseTreeNode::genCode() const
183 188
184 case COMMENT: 189 case COMMENT:
185 buffer.append(COMMENTSYM); 190 buffer.append(COMMENTSYM);
186 buffer.append(element->text); 191 buffer.append((char*)element->data);
187 buffer.append('\n'); 192 buffer.append('\n');
188 break; 193 break;
189 } 194 }
@@ -228,6 +233,7 @@ QString ParseTreeNode::genCode() const
228int ParseTreeNode::genHash() const 233int ParseTreeNode::genHash() const
229{ 234{
230 int hash = 0; 235 int hash = 0;
236 char *text;
231 237
232 if(element) 238 if(element)
233 { 239 {
@@ -248,12 +254,13 @@ int ParseTreeNode::genHash() const
248 254
249 case COMMENT: 255 case COMMENT:
250 case TEXT: 256 case TEXT:
251 for(unsigned int i = 0; i < strlen(element->text); i++) 257 text = (char*)element->data;
258 for(unsigned int i = 0; i < strlen(text); i++)
252 { 259 {
253 if(i % 2) 260 if(i % 2)
254 hash += element->text[i] % element->type; 261 hash += text[i] % element->type;
255 else 262 else
256 hash += element->text[i] % element->type * 2; 263 hash += text[i] % element->type * 2;
257 } 264 }
258 break; 265 break;
259 } 266 }
@@ -370,12 +377,14 @@ QVariant ParseTreeNode::data(int column) const
370 case VIEWPORT: 377 case VIEWPORT:
371 case LINE: 378 case LINE:
372 case SUBLINES: 379 case SUBLINES:
373 case CONDITIONAL:
374 return QString(); 380 return QString();
375 381
382 case CONDITIONAL:
383 return QString(element->tag->name);
384
376 case TEXT: 385 case TEXT:
377 case COMMENT: 386 case COMMENT:
378 return QString(element->text); 387 return QString((char*)element->data);
379 388
380 case TAG: 389 case TAG:
381 return QString(element->tag->name); 390 return QString(element->tag->name);