1
0
Fork 0
forked from len0rd/rockbox

Theme Editor: Fixed line numbering bug in parser. Implemented playlist display in renderer: playlist will use info for next track for all tracks other than the current track

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27227 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-07-01 21:49:55 +00:00
parent c794c1feae
commit 26a2f810f1
5 changed files with 75 additions and 0 deletions

View file

@ -183,6 +183,68 @@ void RBViewport::write(QString text)
}
}
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;
/* The line will be a linked list */
root = root->children[0];
int song = start + info.device()->data("pp").toInt();
int numSongs = info.device()->data("pe").toInt();
while(song <= numSongs && textOffset.y() + lineHeight < size.height())
{
skin_element* current = root;
while(current)
{
if(current->type == TEXT)
{
write(QString((char*)current->data));
}
if(current->type == TAG)
{
QString tag(current->tag->name);
if(tag == "pp")
{
write(QString::number(song));
}
else if(tag == "pt")
{
write(QObject::tr("00:00"));
}
else if(tag[0] == 'i' || tag[0] == 'f')
{
if(song == info.device()->data("pp").toInt())
{
write(info.device()->data(tag).toString());
}
else
{
/* If we're not on the current track, use the next
* track info
*/
if(tag[0] == 'i')
tag = QString("I") + tag.right(1);
else
tag = QString("F") + tag.right(1);
write(info.device()->data(tag).toString());
}
}
}
current = current->next;
}
newLine();
song++;
}
}
void RBViewport::alignLeft()
{
int y = textOffset.y();