diff options
Diffstat (limited to 'utils/themeeditor/parsetreenode.cpp')
-rw-r--r-- | utils/themeeditor/parsetreenode.cpp | 25 |
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 | |||
228 | int ParseTreeNode::genHash() const | 233 | int 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); |