diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-05-30 01:20:05 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-05-30 01:20:05 +0000 |
commit | 9843626b6941f63b964c3352e996032247115aad (patch) | |
tree | 157a0a54d14c403e859fe44c76ecb1fdb6f98bfb /utils/themeeditor/parsetreenode.cpp | |
parent | cc07d688668d6e8ec3c6bb66fe2e36462ef6c8b7 (diff) | |
download | rockbox-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.cpp | 160 |
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 | |
195 | ParseTreeNode* child(int row); | 199 | ParseTreeNode* ParseTreeNode::child(int row) |
196 | int numChildren() const; | 200 | { |
197 | QVariant data(int column) const; | 201 | if(row < 0 || row >= children.count()) |
198 | int getRow() const; | 202 | return 0; |
199 | ParseTreeNode* getParent(); | 203 | |
200 | */ | 204 | return children[row]; |
205 | } | ||
206 | |||
207 | int ParseTreeNode::numChildren() const | ||
208 | { | ||
209 | return children.count(); | ||
210 | } | ||
211 | |||
212 | |||
213 | QVariant 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 | |||
329 | int ParseTreeNode::getRow() const | ||
330 | { | ||
331 | if(!parent) | ||
332 | return -1; | ||
333 | |||
334 | return parent->children.indexOf(const_cast<ParseTreeNode*>(this)); | ||
335 | } | ||
336 | |||
337 | ParseTreeNode* ParseTreeNode::getParent() const | ||
338 | { | ||
339 | return parent; | ||
340 | } | ||
341 | |||
342 | ParseTreeNode::~ParseTreeNode() | ||
343 | { | ||
344 | for(int i = 0; i < children.count(); i++) | ||
345 | delete children[i]; | ||
346 | } | ||