summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/themeeditor/graphics/rbviewport.cpp15
-rw-r--r--utils/themeeditor/graphics/rbviewport.h4
-rw-r--r--utils/themeeditor/models/parsetreenode.cpp12
-rw-r--r--utils/themeeditor/resources/deviceoptions1
4 files changed, 14 insertions, 18 deletions
diff --git a/utils/themeeditor/graphics/rbviewport.cpp b/utils/themeeditor/graphics/rbviewport.cpp
index 5197c2edc6..a2e7bf49d3 100644
--- a/utils/themeeditor/graphics/rbviewport.cpp
+++ b/utils/themeeditor/graphics/rbviewport.cpp
@@ -34,7 +34,7 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info)
34 foreground(info.screen()->foreground()), 34 foreground(info.screen()->foreground()),
35 background(info.screen()->background()), textOffset(0,0), 35 background(info.screen()->background()), textOffset(0,0),
36 screen(info.screen()), textAlign(Left), showStatusBar(false), 36 screen(info.screen()), textAlign(Left), showStatusBar(false),
37 statusBarTexture(":/render/statusbar.png"), line(node->line) 37 statusBarTexture(":/render/statusbar.png")
38{ 38{
39 if(!node->tag) 39 if(!node->tag)
40 { 40 {
@@ -187,17 +187,24 @@ void RBViewport::showPlaylist(const RBRenderInfo &info, int start,
187 skin_element *id3, skin_element *noId3) 187 skin_element *id3, skin_element *noId3)
188{ 188{
189 /* Determining whether ID3 info is available */ 189 /* Determining whether ID3 info is available */
190 skin_element* root = info.device()->data("id3available").toBool() 190 skin_element* root = id3;
191 ? id3 : noId3;
192 191
193 /* The line will be a linked list */ 192 /* The line will be a linked list */
194 root = root->children[0]; 193 if(root->children_count > 0)
194 root = root->children[0];
195 195
196 int song = start + info.device()->data("pp").toInt(); 196 int song = start + info.device()->data("pp").toInt();
197 int numSongs = info.device()->data("pe").toInt(); 197 int numSongs = info.device()->data("pe").toInt();
198 int halfWay = (numSongs - song) / 2 + 1 + song;
198 199
199 while(song <= numSongs && textOffset.y() + lineHeight < size.height()) 200 while(song <= numSongs && textOffset.y() + lineHeight < size.height())
200 { 201 {
202 if(song == halfWay)
203 {
204 root = noId3;
205 if(root->children_count > 0)
206 root = root->children[0];
207 }
201 skin_element* current = root; 208 skin_element* current = root;
202 while(current) 209 while(current)
203 { 210 {
diff --git a/utils/themeeditor/graphics/rbviewport.h b/utils/themeeditor/graphics/rbviewport.h
index 37c642574f..624a9686da 100644
--- a/utils/themeeditor/graphics/rbviewport.h
+++ b/utils/themeeditor/graphics/rbviewport.h
@@ -66,8 +66,6 @@ public:
66 void showPlaylist(const RBRenderInfo& info, int start, skin_element* id3, 66 void showPlaylist(const RBRenderInfo& info, int start, skin_element* id3,
67 skin_element* noId3); 67 skin_element* noId3);
68 68
69 int declarationLine(){ return line; }
70
71private: 69private:
72 70
73 void alignLeft(); 71 void alignLeft();
@@ -93,8 +91,6 @@ private:
93 91
94 bool showStatusBar; 92 bool showStatusBar;
95 QPixmap statusBarTexture; 93 QPixmap statusBarTexture;
96
97 int line;
98}; 94};
99 95
100#endif // RBVIEWPORT_H 96#endif // RBVIEWPORT_H
diff --git a/utils/themeeditor/models/parsetreenode.cpp b/utils/themeeditor/models/parsetreenode.cpp
index f786819b17..08ce703859 100644
--- a/utils/themeeditor/models/parsetreenode.cpp
+++ b/utils/themeeditor/models/parsetreenode.cpp
@@ -518,13 +518,7 @@ void ParseTreeNode::render(const RBRenderInfo &info, RBViewport* viewport,
518 { 518 {
519 for(int i = 0; i < children.count(); i++) 519 for(int i = 0; i < children.count(); i++)
520 children[i]->render(info, viewport); 520 children[i]->render(info, viewport);
521 /* TODO 521 if(!noBreak)
522 * The second element of this if is a temporary hack to allow Vf and Vb
523 * tags in a viewport without forcing the first line of text down. A
524 * proper solution to this problem needs to be worked out in the parser
525 * as soon as possible
526 */
527 if(!noBreak && element->line != viewport->declarationLine())
528 viewport->newLine(); 522 viewport->newLine();
529 } 523 }
530 else if(element->type == TEXT) 524 else if(element->type == TEXT)
@@ -787,8 +781,8 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
787 case 'p': 781 case 'p':
788 /* %Vp */ 782 /* %Vp */
789 viewport->showPlaylist(info, element->params[0].data.numeric, 783 viewport->showPlaylist(info, element->params[0].data.numeric,
790 element->params[2].data.code, 784 element->params[1].data.code,
791 element->params[1].data.code); 785 element->params[2].data.code);
792 return true; 786 return true;
793 787
794 case 'I': 788 case 'I':
diff --git a/utils/themeeditor/resources/deviceoptions b/utils/themeeditor/resources/deviceoptions
index 5417ca6b2d..10a1a89d75 100644
--- a/utils/themeeditor/resources/deviceoptions
+++ b/utils/themeeditor/resources/deviceoptions
@@ -114,7 +114,6 @@ ra ; Autoscore ; spin(0,10) ; 7
114?C ; Album Art Available ; check ; true 114?C ; Album Art Available ; check ; true
115artwidth ; Album Art Width ; spin(0,500) ; 100 115artwidth ; Album Art Width ; spin(0,500) ; 100
116artheight; Album Art Height ; spin(0,500) ; 100 116artheight; Album Art Height ; spin(0,500) ; 100
117id3available ; ID3 Info Available ; check ; true
118 117
119[Hardware Status] 118[Hardware Status]
120bl ; Battery Level (-1 for unknown) ; spin(-1,100) ; 50 119bl ; Battery Level (-1 for unknown) ; spin(-1,100) ; 50