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:
parent
6358d41f31
commit
cd98d01926
3 changed files with 82 additions and 1 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue