summaryrefslogtreecommitdiff
path: root/utils/themeeditor/models/parsetreenode.cpp
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-08-05 19:05:36 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-08-05 19:05:36 +0000
commitc5025c7c78b416f42f086138161d3126ad9482b9 (patch)
tree9415a0544cd17d40f21d1ae9a5599223be408fb1 /utils/themeeditor/models/parsetreenode.cpp
parente4dc4f891393bb132927ad5d1a726f5d9429bff7 (diff)
downloadrockbox-c5025c7c78b416f42f086138161d3126ad9482b9.tar.gz
rockbox-c5025c7c78b416f42f086138161d3126ad9482b9.zip
Theme Editor: Made progress bars fully movable/savable from the preview panel
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27726 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/models/parsetreenode.cpp')
-rw-r--r--utils/themeeditor/models/parsetreenode.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp
index 4afd04ab9d..779d236012 100644
--- a/utils/themeeditor/models/parsetreenode.cpp
+++ b/utils/themeeditor/models/parsetreenode.cpp
@@ -682,16 +682,14 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
682 { 682 {
683 case 'b': 683 case 'b':
684 /* %pb */ 684 /* %pb */
685 new RBProgressBar(viewport, info, element->params_count, 685 new RBProgressBar(viewport, info, this);
686 element->params);
687 return true; 686 return true;
688 687
689 case 'v': 688 case 'v':
690 /* %pv */ 689 /* %pv */
691 if(element->params_count > 0) 690 if(element->params_count > 0)
692 { 691 {
693 new RBProgressBar(viewport, info, element->params_count, 692 new RBProgressBar(viewport, info, this, true);
694 element->params, true);
695 return true; 693 return true;
696 } 694 }
697 else 695 else
@@ -1075,8 +1073,24 @@ void ParseTreeNode::modParam(QVariant value, int index)
1075{ 1073{
1076 if(element) 1074 if(element)
1077 { 1075 {
1078 if(index < 0 || index >= children.count()) 1076 if(index < 0)
1079 return; 1077 return;
1078 while(index >= children.count())
1079 {
1080 /* Padding children with defaults until we make the necessary
1081 * parameter available
1082 */
1083 skin_tag_parameter* newParam = new skin_tag_parameter;
1084 newParam->type = skin_tag_parameter::DEFAULT;
1085 /* We'll need to manually delete the extra parameters in the
1086 * destructor
1087 */
1088 extraParams.append(children.count());
1089
1090 children.append(new ParseTreeNode(newParam, this, model));
1091 element->params_count++;
1092 }
1093
1080 children[index]->modParam(value); 1094 children[index]->modParam(value);
1081 } 1095 }
1082 else if(param) 1096 else if(param)