summaryrefslogtreecommitdiff
path: root/utils/themeeditor/models
diff options
context:
space:
mode:
Diffstat (limited to 'utils/themeeditor/models')
-rw-r--r--utils/themeeditor/models/parsetreemodel.cpp4
-rw-r--r--utils/themeeditor/models/parsetreenode.cpp63
2 files changed, 41 insertions, 26 deletions
diff --git a/utils/themeeditor/models/parsetreemodel.cpp b/utils/themeeditor/models/parsetreemodel.cpp
index a04a0d9202..66c96213ab 100644
--- a/utils/themeeditor/models/parsetreemodel.cpp
+++ b/utils/themeeditor/models/parsetreemodel.cpp
@@ -246,8 +246,8 @@ bool ParseTreeModel::setData(const QModelIndex &index, const QVariant &value,
246 if(!value.canConvert(QVariant::Int)) 246 if(!value.canConvert(QVariant::Int))
247 return false; 247 return false;
248 248
249 param->type = skin_tag_parameter::NUMERIC; 249 param->type = skin_tag_parameter::INTEGER;
250 param->data.numeric = value.toInt(); 250 param->data.number = value.toInt();
251 } 251 }
252 else 252 else
253 { 253 {
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp
index 1b894b7c33..fbb7b9279f 100644
--- a/utils/themeeditor/models/parsetreenode.cpp
+++ b/utils/themeeditor/models/parsetreenode.cpp
@@ -246,8 +246,12 @@ QString ParseTreeNode::genCode() const
246 } 246 }
247 break; 247 break;
248 248
249 case skin_tag_parameter::NUMERIC: 249 case skin_tag_parameter::INTEGER:
250 buffer.append(QString::number(param->data.numeric, 10)); 250 buffer.append(QString::number(param->data.number, 10));
251 break;
252
253 case skin_tag_parameter::DECIMAL:
254 buffer.append(QString::number(param->data.number / 10., 'f', 1));
251 break; 255 break;
252 256
253 case skin_tag_parameter::DEFAULT: 257 case skin_tag_parameter::DEFAULT:
@@ -318,8 +322,8 @@ int ParseTreeNode::genHash() const
318 case skin_tag_parameter::CODE: 322 case skin_tag_parameter::CODE:
319 break; 323 break;
320 324
321 case skin_tag_parameter::NUMERIC: 325 case skin_tag_parameter::INTEGER:
322 hash += param->data.numeric * (param->data.numeric / 4); 326 hash += param->data.number * (param->data.number / 4);
323 break; 327 break;
324 328
325 case skin_tag_parameter::STRING: 329 case skin_tag_parameter::STRING:
@@ -331,6 +335,10 @@ int ParseTreeNode::genHash() const
331 hash += param->data.text[i]; 335 hash += param->data.text[i];
332 } 336 }
333 break; 337 break;
338
339 case skin_tag_parameter::DECIMAL:
340 hash += param->data.number;
341 break;
334 } 342 }
335 } 343 }
336 344
@@ -396,8 +404,11 @@ QVariant ParseTreeNode::data(int column) const
396 case skin_tag_parameter::STRING: 404 case skin_tag_parameter::STRING:
397 return QObject::tr("String"); 405 return QObject::tr("String");
398 406
399 case skin_tag_parameter::NUMERIC: 407 case skin_tag_parameter::INTEGER:
400 return QObject::tr("Number"); 408 return QObject::tr("Integer");
409
410 case skin_tag_parameter::DECIMAL:
411 return QObject::tr("Decimal");
401 412
402 case skin_tag_parameter::DEFAULT: 413 case skin_tag_parameter::DEFAULT:
403 return QObject::tr("Default Argument"); 414 return QObject::tr("Default Argument");
@@ -445,11 +456,15 @@ QVariant ParseTreeNode::data(int column) const
445 case skin_tag_parameter::STRING: 456 case skin_tag_parameter::STRING:
446 return QString(param->data.text); 457 return QString(param->data.text);
447 458
448 case skin_tag_parameter::NUMERIC: 459 case skin_tag_parameter::INTEGER:
449 return QString::number(param->data.numeric, 10); 460 return QString::number(param->data.number, 10);
461
462 case skin_tag_parameter::DECIMAL:
463 return QString::number(param->data.number / 10., 'f', 1);
450 464
451 case skin_tag_parameter::CODE: 465 case skin_tag_parameter::CODE:
452 return QObject::tr("Seriously, something's wrong here"); 466 return QObject::tr("Seriously, something's wrong here");
467
453 } 468 }
454 } 469 }
455 else 470 else
@@ -742,10 +757,10 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
742 id = element->params[0].data.text; 757 id = element->params[0].data.text;
743 filename = info.settings()->value("imagepath", "") + "/" + 758 filename = info.settings()->value("imagepath", "") + "/" +
744 element->params[1].data.text; 759 element->params[1].data.text;
745 x = element->params[2].data.numeric; 760 x = element->params[2].data.number;
746 y = element->params[3].data.numeric; 761 y = element->params[3].data.number;
747 if(element->params_count > 4) 762 if(element->params_count > 4)
748 tiles = element->params[4].data.numeric; 763 tiles = element->params[4].data.number;
749 else 764 else
750 tiles = 1; 765 tiles = 1;
751 766
@@ -758,8 +773,8 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
758 id = element->params[0].data.text; 773 id = element->params[0].data.text;
759 filename = info.settings()->value("imagepath", "") + "/" + 774 filename = info.settings()->value("imagepath", "") + "/" +
760 element->params[1].data.text; 775 element->params[1].data.text;
761 x = element->params[2].data.numeric; 776 x = element->params[2].data.number;
762 y = element->params[3].data.numeric; 777 y = element->params[3].data.number;
763 image = new RBImage(filename, 1, x, y, viewport); 778 image = new RBImage(filename, 1, x, y, viewport);
764 info.screen()->loadImage(id, new RBImage(filename, 1, x, y, 779 info.screen()->loadImage(id, new RBImage(filename, 1, x, y,
765 viewport)); 780 viewport));
@@ -780,10 +795,10 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
780 795
781 case 'l': 796 case 'l':
782 /* %Cl */ 797 /* %Cl */
783 x = element->params[0].data.numeric; 798 x = element->params[0].data.number;
784 y = element->params[1].data.numeric; 799 y = element->params[1].data.number;
785 maxWidth = element->params[2].data.numeric; 800 maxWidth = element->params[2].data.number;
786 maxHeight = element->params[3].data.numeric; 801 maxHeight = element->params[3].data.number;
787 hAlign = element->params_count > 4 802 hAlign = element->params_count > 4
788 ? element->params[4].data.text[0] : 'c'; 803 ? element->params[4].data.text[0] : 'c';
789 vAlign = element->params_count > 5 804 vAlign = element->params_count > 5
@@ -805,7 +820,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
805 820
806 case 'l': 821 case 'l':
807 /* %Fl */ 822 /* %Fl */
808 x = element->params[0].data.numeric; 823 x = element->params[0].data.number;
809 filename = info.settings()->value("themebase", "") + "/fonts/" + 824 filename = info.settings()->value("themebase", "") + "/fonts/" +
810 element->params[1].data.text; 825 element->params[1].data.text;
811 info.screen()->loadFont(x, new RBFont(filename)); 826 info.screen()->loadFont(x, new RBFont(filename));
@@ -822,10 +837,10 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
822 /* %T */ 837 /* %T */
823 if(element->params_count < 5) 838 if(element->params_count < 5)
824 return false; 839 return false;
825 int x = element->params[0].data.numeric; 840 int x = element->params[0].data.number;
826 int y = element->params[1].data.numeric; 841 int y = element->params[1].data.number;
827 int width = element->params[2].data.numeric; 842 int width = element->params[2].data.number;
828 int height = element->params[3].data.numeric; 843 int height = element->params[3].data.number;
829 QString action(element->params[4].data.text); 844 QString action(element->params[4].data.text);
830 RBTouchArea* temp = new RBTouchArea(width, height, action, info); 845 RBTouchArea* temp = new RBTouchArea(width, height, action, info);
831 temp->setPos(x, y); 846 temp->setPos(x, y);
@@ -863,7 +878,7 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
863 878
864 case 'p': 879 case 'p':
865 /* %Vp */ 880 /* %Vp */
866 viewport->showPlaylist(info, element->params[0].data.numeric, 881 viewport->showPlaylist(info, element->params[0].data.number,
867 element->params[1].data.code, 882 element->params[1].data.code,
868 element->params[2].data.code); 883 element->params[2].data.code);
869 return true; 884 return true;
@@ -1016,7 +1031,7 @@ double ParseTreeNode::findBranchTime(ParseTreeNode *branch,
1016 if(current->element->tag->name[0] == 't' 1031 if(current->element->tag->name[0] == 't'
1017 && current->element->tag->name[1] == '\0') 1032 && current->element->tag->name[1] == '\0')
1018 { 1033 {
1019 retval = atof(current->element->params[0].data.text); 1034 retval = current->element->params[0].data.number / 10.;
1020 } 1035 }
1021 } 1036 }
1022 else if(current->element->type == CONDITIONAL) 1037 else if(current->element->type == CONDITIONAL)