Theme Editor: Implemented the song time (pS, pE, px, pc, etc.) in the device configuration panel, all depending on one value for current time in song and one value for length of song

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27347 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-07-08 08:14:04 +00:00
parent 6358d41f31
commit cd98d01926
3 changed files with 82 additions and 1 deletions

View file

@ -30,7 +30,9 @@
#include <QLabel>
#include <QLineEdit>
#include <QFormLayout>
#include <QTime>
#include <cstdlib>
DeviceState::DeviceState(QWidget *parent) :
QWidget(parent), tabs(this)
@ -227,6 +229,47 @@ QVariant DeviceState::data(QString tag, int paramCount,
else
return QVariant();
}
else if(tag == "pc")
{
int secs = data("?pc").toInt();
return secsToString(secs);
}
else if(tag == "pr")
{
int secs = data("?pt").toInt() - data("?pc").toInt();
if(secs < 0)
secs = 0;
return secsToString(secs);
}
else if(tag == "pt")
{
int secs = data("?pt").toInt();
return secsToString(secs);
}
else if(tag == "px")
{
int totalTime = data("?pt").toInt();
int currentTime = data("?pc").toInt();
return currentTime * 100 / totalTime;
}
else if(tag == "pS")
{
double threshhold = paramCount > 0
? std::atof(params[0].data.text) : 10;
if(data("?pc").toDouble() <= threshhold)
return true;
else
return false;
}
else if(tag == "pE")
{
double threshhold = paramCount > 0
? std::atof(params[0].data.text) : 10;
if(data("?pt").toDouble() - data("?pc").toDouble() <= threshhold)
return true;
else
return false;
}
QPair<InputType, QWidget*> found =
inputs.value(tag, QPair<InputType, QWidget*>(Slide, 0));
@ -335,3 +378,40 @@ QString DeviceState::directory(QString path, int level)
index = 0;
return dirs[index];
}
QString DeviceState::secsToString(int secs)
{
int hours = 0;
int minutes = 0;
while(secs >= 60)
{
minutes++;
secs -= 60;
}
while(minutes >= 60)
{
hours++;
minutes -= 60;
}
QString retval;
if(hours > 0)
{
retval += QString::number(hours);
if(minutes < 10)
retval += ":0";
else
retval += ":";
}
retval += QString::number(minutes);
if(secs < 10)
retval += ":0";
else
retval += ":";
retval += QString::number(secs);
return retval;
}

View file

@ -61,6 +61,7 @@ private slots:
private:
static QString fileName(QString path, bool extension);
static QString directory(QString path, int level);
static QString secsToString(int secs);
QMap<QString, QPair<InputType, QWidget*> > inputs;
QTabWidget tabs;

View file

@ -93,7 +93,7 @@ pe ; Playlist Entries ; spin(0,1000) ; 20
pn ; Playlist Name ; text ; Current Playlist
pp ; Playlist Position ; spin(0,1000) ; 10
ps ; Shuffle ; check ; true
pt ; Total Track Time ; spin(0,1000) ; 180
?pt ; Total Track Time ; spin(0,1000) ; 180
Sp ; Playback Pitch ; fspin(50,200) ; 100
rp ; Song Playcount ; spin(0,10000) ; 20
rr ; Song Rating ; spin(0,10) ; 5