diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-07-12 06:07:50 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-07-12 06:07:50 +0000 |
commit | 64af2b3a16c1fc9968b50223b79321ca04cc53e4 (patch) | |
tree | a34a9330f320846e07479791c7a664e3f8d979e9 /utils/themeeditor/models | |
parent | bae183633705b087f80afe11a36772f553a5cb26 (diff) | |
download | rockbox-64af2b3a16c1fc9968b50223b79321ca04cc53e4.tar.gz rockbox-64af2b3a16c1fc9968b50223b79321ca04cc53e4.zip |
Theme Editor: Made %pv tag display bar and select from conditional branches correctly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27398 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor/models')
-rw-r--r-- | utils/themeeditor/models/parsetreenode.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp index 973ceb598b..1b894b7c33 100644 --- a/utils/themeeditor/models/parsetreenode.cpp +++ b/utils/themeeditor/models/parsetreenode.cpp | |||
@@ -660,6 +660,17 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) | |||
660 | new RBProgressBar(viewport, info, element->params_count, | 660 | new RBProgressBar(viewport, info, element->params_count, |
661 | element->params); | 661 | element->params); |
662 | return true; | 662 | return true; |
663 | |||
664 | case 'v': | ||
665 | /* %pv */ | ||
666 | if(element->params_count > 0) | ||
667 | { | ||
668 | new RBProgressBar(viewport, info, element->params_count, | ||
669 | element->params, true); | ||
670 | return true; | ||
671 | } | ||
672 | else | ||
673 | return false; | ||
663 | } | 674 | } |
664 | 675 | ||
665 | return false; | 676 | return false; |
@@ -928,6 +939,26 @@ QVariant ParseTreeNode::evalTag(const RBRenderInfo& info, bool conditional, | |||
928 | child = ((branches - 1) * child / 100) + 1; | 939 | child = ((branches - 1) * child / 100) + 1; |
929 | } | 940 | } |
930 | } | 941 | } |
942 | else if(QString(element->tag->name) == "pv") | ||
943 | { | ||
944 | /* ?pv gets scaled to the number of available children, sandwiched | ||
945 | * in between mute and 0/>0dB. I assume a floor of -50dB for the | ||
946 | * time being | ||
947 | */ | ||
948 | int dB = val.toInt(); | ||
949 | |||
950 | if(dB < -50) | ||
951 | child = 0; | ||
952 | else if(dB == 0) | ||
953 | child = branches - 2; | ||
954 | else if(dB > 0) | ||
955 | child = branches - 1; | ||
956 | else | ||
957 | { | ||
958 | int options = branches - 3; | ||
959 | child = (options * (dB + 50)) / 50; | ||
960 | } | ||
961 | } | ||
931 | else if(QString(element->tag->name) == "px") | 962 | else if(QString(element->tag->name) == "px") |
932 | { | 963 | { |
933 | child = val.toInt(); | 964 | child = val.toInt(); |