diff options
Diffstat (limited to 'utils/themeeditor')
| -rw-r--r-- | utils/themeeditor/gui/devicestate.cpp | 80 | ||||
| -rw-r--r-- | utils/themeeditor/gui/devicestate.h | 1 | ||||
| -rw-r--r-- | utils/themeeditor/resources/deviceoptions | 2 |
3 files changed, 82 insertions, 1 deletions
diff --git a/utils/themeeditor/gui/devicestate.cpp b/utils/themeeditor/gui/devicestate.cpp index 12198f5..8802bd5 100644 --- a/utils/themeeditor/gui/devicestate.cpp +++ b/utils/themeeditor/gui/devicestate.cpp @@ -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; +} diff --git a/utils/themeeditor/gui/devicestate.h b/utils/themeeditor/gui/devicestate.h index ebd4afe..bff27ce 100644 --- a/utils/themeeditor/gui/devicestate.h +++ b/utils/themeeditor/gui/devicestate.h @@ -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; diff --git a/utils/themeeditor/resources/deviceoptions b/utils/themeeditor/resources/deviceoptions index 6897045..56c7927 100644 --- a/utils/themeeditor/resources/deviceoptions +++ b/utils/themeeditor/resources/deviceoptions @@ -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 |