diff options
Diffstat (limited to 'utils/themeeditor')
-rw-r--r-- | utils/themeeditor/graphics/rbviewport.cpp | 15 | ||||
-rw-r--r-- | utils/themeeditor/graphics/rbviewport.h | 4 | ||||
-rw-r--r-- | utils/themeeditor/models/parsetreenode.cpp | 12 | ||||
-rw-r--r-- | utils/themeeditor/resources/deviceoptions | 1 |
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) foreground(info.screen()->foreground()), background(info.screen()->background()), textOffset(0,0), screen(info.screen()), textAlign(Left), showStatusBar(false), - statusBarTexture(":/render/statusbar.png"), line(node->line) + statusBarTexture(":/render/statusbar.png") { if(!node->tag) { @@ -187,17 +187,24 @@ void RBViewport::showPlaylist(const RBRenderInfo &info, int start, skin_element *id3, skin_element *noId3) { /* Determining whether ID3 info is available */ - skin_element* root = info.device()->data("id3available").toBool() - ? id3 : noId3; + skin_element* root = id3; /* The line will be a linked list */ - root = root->children[0]; + if(root->children_count > 0) + root = root->children[0]; int song = start + info.device()->data("pp").toInt(); int numSongs = info.device()->data("pe").toInt(); + int halfWay = (numSongs - song) / 2 + 1 + song; while(song <= numSongs && textOffset.y() + lineHeight < size.height()) { + if(song == halfWay) + { + root = noId3; + if(root->children_count > 0) + root = root->children[0]; + } skin_element* current = root; while(current) { 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: void showPlaylist(const RBRenderInfo& info, int start, skin_element* id3, skin_element* noId3); - int declarationLine(){ return line; } - private: void alignLeft(); @@ -93,8 +91,6 @@ private: bool showStatusBar; QPixmap statusBarTexture; - - int line; }; #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, { for(int i = 0; i < children.count(); i++) children[i]->render(info, viewport); - /* TODO - * The second element of this if is a temporary hack to allow Vf and Vb - * tags in a viewport without forcing the first line of text down. A - * proper solution to this problem needs to be worked out in the parser - * as soon as possible - */ - if(!noBreak && element->line != viewport->declarationLine()) + if(!noBreak) viewport->newLine(); } else if(element->type == TEXT) @@ -787,8 +781,8 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport) case 'p': /* %Vp */ viewport->showPlaylist(info, element->params[0].data.numeric, - element->params[2].data.code, - element->params[1].data.code); + element->params[1].data.code, + element->params[2].data.code); return true; 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 ?C ; Album Art Available ; check ; true artwidth ; Album Art Width ; spin(0,500) ; 100 artheight; Album Art Height ; spin(0,500) ; 100 -id3available ; ID3 Info Available ; check ; true [Hardware Status] bl ; Battery Level (-1 for unknown) ; spin(-1,100) ; 50 |