summaryrefslogtreecommitdiff
path: root/utils/themeeditor/parsetreenode.cpp
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-05-30 01:20:05 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-05-30 01:20:05 +0000
commit9843626b6941f63b964c3352e996032247115aad (patch)
tree157a0a54d14c403e859fe44c76ecb1fdb6f98bfb /utils/themeeditor/parsetreenode.cpp
parentcc07d688668d6e8ec3c6bb66fe2e36462ef6c8b7 (diff)
downloadrockbox-9843626b6941f63b964c3352e996032247115aad.tar.gz
rockbox-9843626b6941f63b964c3352e996032247115aad.zip
Themeditor: Got the ParseTreeNode class in good shape, preparing to start on ParseTreeModel
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26400 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/parsetreenode.cpp')
-rw-r--r--utils/themeeditor/parsetreenode.cpp160
1 files changed, 153 insertions, 7 deletions
diff --git a/utils/themeeditor/parsetreenode.cpp b/utils/themeeditor/parsetreenode.cpp
index ccfac615be..60a18b8dbc 100644
--- a/utils/themeeditor/parsetreenode.cpp
+++ b/utils/themeeditor/parsetreenode.cpp
@@ -181,6 +181,10 @@ QString ParseTreeNode::genCode() const
181 buffer.append(DEFAULTSYM); 181 buffer.append(DEFAULTSYM);
182 break; 182 break;
183 183
184 case skin_tag_parameter::CODE:
185 buffer.append(QObject::tr("This doesn't belong here"));
186 break;
187
184 } 188 }
185 } 189 }
186 else 190 else
@@ -191,10 +195,152 @@ QString ParseTreeNode::genCode() const
191 195
192 return buffer; 196 return buffer;
193} 197}
194/* 198
195ParseTreeNode* child(int row); 199ParseTreeNode* ParseTreeNode::child(int row)
196int numChildren() const; 200{
197QVariant data(int column) const; 201 if(row < 0 || row >= children.count())
198int getRow() const; 202 return 0;
199ParseTreeNode* getParent(); 203
200*/ 204 return children[row];
205}
206
207int ParseTreeNode::numChildren() const
208{
209 return children.count();
210}
211
212
213QVariant ParseTreeNode::data(int column) const
214{
215 switch(column)
216 {
217 /* Column 0 is the element type */
218 case 0:
219 if(element)
220 {
221 switch(element->type)
222 {
223 case LINE:
224 return QObject::tr("Logical Line");
225
226 case SUBLINES:
227 return QObject::tr("Alternator");
228
229 case COMMENT:
230 return QObject::tr("Comment");
231
232 case CONDITIONAL:
233 return QObject::tr("Conditional Tag");
234
235 case TAG:
236 return QObject::tr("Tag");
237
238 case NEWLINE:
239 return QObject::tr("Newline");
240
241 case TEXT:
242 return QObject::tr("Plaintext");
243 }
244 }
245 else if(param)
246 {
247 switch(param->type)
248 {
249 case skin_tag_parameter::STRING:
250 return QObject::tr("String");
251
252 case skin_tag_parameter::NUMERIC:
253 return QObject::tr("Number");
254
255 case skin_tag_parameter::DEFAULT:
256 return QObject::tr("Default Argument");
257
258 case skin_tag_parameter::CODE:
259 return QObject::tr("This doesn't belong here");
260 }
261 }
262 else
263 {
264 return QObject::tr("Root");
265 }
266
267 break;
268
269 /* Column 1 is the value */
270 case 1:
271 if(element)
272 {
273 switch(element->type)
274 {
275 case LINE:
276 return QString();
277
278 case SUBLINES:
279 return QString();
280
281 case NEWLINE:
282 return QObject::tr("\\n");
283
284 case TEXT:
285 case COMMENT:
286 return QString(element->text);
287
288 case CONDITIONAL:
289 case TAG:
290 return QString(element->name);
291 }
292 }
293 else if(param)
294 {
295 switch(param->type)
296 {
297 case skin_tag_parameter::DEFAULT:
298 return QObject::tr("-");
299
300 case skin_tag_parameter::STRING:
301 return QString(param->data.text);
302
303 case skin_tag_parameter::NUMERIC:
304 return QString::number(param->data.numeric, 10);
305
306 case skin_tag_parameter::CODE:
307 return QObject::tr("Seriously, something's wrong here");
308 }
309 }
310 else
311 {
312 return QString();
313 }
314 break;
315
316 /* Column 2 is the line number */
317 case 2:
318 if(element)
319 return QString::number(element->line, 10);
320 else
321 return QString();
322 break;
323 }
324
325 return QVariant();
326}
327
328
329int ParseTreeNode::getRow() const
330{
331 if(!parent)
332 return -1;
333
334 return parent->children.indexOf(const_cast<ParseTreeNode*>(this));
335}
336
337ParseTreeNode* ParseTreeNode::getParent() const
338{
339 return parent;
340}
341
342ParseTreeNode::~ParseTreeNode()
343{
344 for(int i = 0; i < children.count(); i++)
345 delete children[i];
346}