Theme Editor: Switched the last two parameters of the Vp tag back to their original orientation, made the playlist display the first half with ID3 info, the second half without, as if the list were mid-way through loading

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27234 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-07-02 05:17:57 +00:00
parent e763eb73b8
commit 14caf67642
4 changed files with 14 additions and 18 deletions

View file

@ -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)
{

View file

@ -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

View file

@ -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':

View file

@ -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