diff --git a/sources/awesome-widget/package/contents/ui/main.qml b/sources/awesome-widget/package/contents/ui/main.qml index ca0aa5c..2f0ce46 100644 --- a/sources/awesome-widget/package/contents/ui/main.qml +++ b/sources/awesome-widget/package/contents/ui/main.qml @@ -181,7 +181,7 @@ Item { onNeedUpdate: { if (debug) console.log("[main::onNeedUpdate]") - text.text = AWKeys.parsePattern(plasmoid.configuration.text) + text.text = AWKeys.parsePattern() tooltip.text = AWKeys.toolTipImage() sizeUpdate() @@ -211,7 +211,7 @@ Item { if (debug) console.log("[main::onUserConfiguringChanged]") // init submodule - AWKeys.initKeys() + AWKeys.initKeys(plasmoid.configuration.text) AWKeys.initTooltip(tooltipSettings) AWKeys.setPopupEnabled(plasmoid.configuration.notify) AWKeys.setWrapNewLines(plasmoid.configuration.wrapNewLines) diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp index fac6a44..b733d54 100644 --- a/sources/awesome-widget/plugin/awkeys.cpp +++ b/sources/awesome-widget/plugin/awkeys.cpp @@ -86,7 +86,7 @@ AWKeys::~AWKeys() } -void AWKeys::initKeys() +void AWKeys::initKeys(const QString currentPattern) { if (debug) qDebug() << PDEBUG; @@ -96,8 +96,11 @@ void AWKeys::initKeys() extUpgrade.clear(); graphicalItems.clear(); keys.clear(); + foundBars.clear(); + foundKeys.clear(); // init + pattern = currentPattern; extQuotes = getExtQuotes(); extScripts = getExtScripts(); extUpgrade = getExtUpgrade(); @@ -143,19 +146,17 @@ bool AWKeys::isDebugEnabled() } -QString AWKeys::parsePattern(const QString currentPattern) +QString AWKeys::parsePattern() { if (debug) qDebug() << PDEBUG; - if (keys.isEmpty()) return currentPattern; + if (keys.isEmpty()) return pattern; - QString parsed = currentPattern; + QString parsed = pattern; parsed.replace(QString("$$"), QString("$\\$\\")); - for (int i=0; iimage(valueByKey(keys[i]).toFloat())); - else - parsed.replace(QString("$%1").arg(keys[i]), htmlValue(keys[i])); - } + for (int i=0; iimage(valueByKey(foundBars[i]).toFloat())); parsed.replace(QString("$\\$\\"), QString("$$")); // wrap new lines if required if (wrapNewLines) parsed.replace(QString("\n"), QString("
")); @@ -848,6 +849,8 @@ void AWKeys::reinitKeys() if (debug) qDebug() << PDEBUG; keys = dictKeys(); + foundBars = findGraphicalItems(); + foundKeys = findKeys(); } @@ -1322,6 +1325,41 @@ float AWKeys::temperature(const float temp, const QString units) } +QStringList AWKeys::findGraphicalItems() +{ + if (debug) qDebug() << PDEBUG; + + QStringList orderedKeys; + for (int i=0; iname() + graphicalItems[i]->bar()); + orderedKeys.sort(); + + QStringList selectedKeys; + for (int i=orderedKeys.count()-1; i>=0; i--) + if (pattern.contains(QString("$%1").arg(orderedKeys[i]))) { + if (debug) qDebug() << PDEBUG << ":" << "Found key" << orderedKeys[i]; + selectedKeys.append(orderedKeys[i]); + } + + return selectedKeys; +} + + +QStringList AWKeys::findKeys() +{ + QStringList selectedKeys; + for (int i=0; i AWKeys::getExtQuotes() { if (debug) qDebug() << PDEBUG; diff --git a/sources/awesome-widget/plugin/awkeys.h b/sources/awesome-widget/plugin/awkeys.h index d71af67..2fa7b32 100644 --- a/sources/awesome-widget/plugin/awkeys.h +++ b/sources/awesome-widget/plugin/awkeys.h @@ -51,12 +51,12 @@ public: AWKeys(QObject *parent = nullptr); ~AWKeys(); - Q_INVOKABLE void initKeys(); + Q_INVOKABLE void initKeys(const QString currentPattern); Q_INVOKABLE void initTooltip(const QVariantMap tooltipParams); Q_INVOKABLE void setPopupEnabled(const bool popup = false); Q_INVOKABLE void setWrapNewLines(const bool wrap = false); Q_INVOKABLE bool isDebugEnabled(); - Q_INVOKABLE QString parsePattern(const QString currentPattern); + Q_INVOKABLE QString parsePattern(); Q_INVOKABLE QString toolTipImage(); Q_INVOKABLE QSize toolTipSize(); // keys @@ -93,6 +93,9 @@ private: QString htmlValue(QString key); int numberCpus(); float temperature(const float temp, const QString units); + // find methods + QStringList findGraphicalItems(); + QStringList findKeys(); // get methods QList getExtQuotes(); QList getExtScripts(); @@ -117,8 +120,10 @@ private: QList extQuotes; QList extScripts; QList extUpgrade; + QStringList foundBars, foundKeys, keys; + QString pattern; QMap values; - QStringList keys, diskDevices, hddDevices, mountDevices, networkDevices, tempDevices; + QStringList diskDevices, hddDevices, mountDevices, networkDevices, tempDevices; };