diff --git a/utils/themeeditor/gui/devicestate.cpp b/utils/themeeditor/gui/devicestate.cpp index 12198f5138..8802bd5e87 100644 --- a/utils/themeeditor/gui/devicestate.cpp +++ b/utils/themeeditor/gui/devicestate.cpp @@ -30,7 +30,9 @@ #include #include #include +#include +#include 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 found = inputs.value(tag, QPair(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 ebd4afec8c..bff27ce678 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 > inputs; QTabWidget tabs; diff --git a/utils/themeeditor/resources/deviceoptions b/utils/themeeditor/resources/deviceoptions index 689704577f..56c7927373 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