diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-08-05 19:05:36 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-08-05 19:05:36 +0000 |
commit | c5025c7c78b416f42f086138161d3126ad9482b9 (patch) | |
tree | 9415a0544cd17d40f21d1ae9a5599223be408fb1 /utils/themeeditor/models/parsetreenode.cpp | |
parent | e4dc4f891393bb132927ad5d1a726f5d9429bff7 (diff) | |
download | rockbox-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.cpp | 24 |
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) |