diff --git a/sources/awesome-widget/awesome-widget.cpp b/sources/awesome-widget/awesome-widget.cpp index 7405ad7..3f36fac 100644 --- a/sources/awesome-widget/awesome-widget.cpp +++ b/sources/awesome-widget/awesome-widget.cpp @@ -397,7 +397,9 @@ QStringList AwesomeWidget::findGraphicalItems() { if (debug) qDebug() << PDEBUG; - QStringList orderedKeys = graphicalItems.keys(); + QStringList orderedKeys; + for (int i=0; igetName() + graphicalItems[i]->getBar()); orderedKeys.sort(); QStringList selectedKeys; for (int i=orderedKeys.count()-1; i>=0; i--) @@ -429,13 +431,27 @@ void AwesomeWidget::getGraphicalItems() if (names.contains(files[j])) continue; if (debug) qDebug() << PDEBUG << ":" << "Found file" << files[j] << "in" << dirs[i]; names.append(files[j]); - GraphicalItem *item = new GraphicalItem(0, files[j], dirs, debug); - graphicalItems[item->getName() + item->getBar()] = item; + graphicalItems.append(new GraphicalItem(0, files[j], dirs, debug)); } } } +GraphicalItem *AwesomeWidget::getItemByTag(const QString tag) +{ + if (debug) qDebug() << PDEBUG; + + GraphicalItem *item = nullptr; + for (int i=0; i< graphicalItems.count(); i++) { + if ((graphicalItems[i]->getName() + graphicalItems[i]->getBar()) != tag) continue; + item = graphicalItems[i]; + break; + } + + return item; +} + + void AwesomeWidget::showKsysguard() { if (debug) qDebug() << PDEBUG; diff --git a/sources/awesome-widget/awesome-widget.h b/sources/awesome-widget/awesome-widget.h index 5c3ddb8..977957a 100644 --- a/sources/awesome-widget/awesome-widget.h +++ b/sources/awesome-widget/awesome-widget.h @@ -107,6 +107,7 @@ private: QStringList getKeys(); QStringList findGraphicalItems(); void getGraphicalItems(); + GraphicalItem *getItemByTag(const QString tag); QList initScripts(); // ui QGraphicsGridLayout *mainLayout = nullptr; @@ -138,7 +139,7 @@ private: // configuration QMap configuration; QStringList diskDevices, keys, formatLine, foundKeys; - QMap graphicalItems; + QList graphicalItems; QStringList foundBars; }; diff --git a/sources/awesome-widget/configuration.cpp b/sources/awesome-widget/configuration.cpp index e969190..020b564 100644 --- a/sources/awesome-widget/configuration.cpp +++ b/sources/awesome-widget/configuration.cpp @@ -147,6 +147,8 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent) uiWidConfig.textEdit_elements->setPlainText(configuration[QString("text")]); uiWidConfig.comboBox_tags->clear(); uiWidConfig.comboBox_tags->addItems(getKeys()); + for (int i=0; iaddItem(graphicalItems[i]->getName() + graphicalItems[i]->getBar()); // advanced if (configuration[QString("background")].toInt() == 0) @@ -299,8 +301,8 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent) uiAdvancedConfig.lineEdit_acOnline->setText(configuration[QString("acOnline")]); uiAdvancedConfig.lineEdit_acOffline->setText(configuration[QString("acOffline")]); uiAdvancedConfig.listWidget_bars->clear(); - for (int i=0; iaddItem(new QListWidgetItem(graphicalItems.keys()[i])); + for (int i=0; iaddItem(new QListWidgetItem(graphicalItems[i]->getFileName())); if (configuration[QString("checkUpdates")].toInt() == 0) uiAdvancedConfig.checkBox_updates->setCheckState(Qt::Unchecked); else @@ -702,8 +704,8 @@ void AwesomeWidget::addBar() int number = 0; while (true) { bool exit = true; - for (int i=0; igetName() == QString("bar%1").arg(number)) { + for (int i=0; igetName() == QString("bar%1").arg(number)) { number++; exit = false; break; @@ -787,7 +789,11 @@ void AwesomeWidget::editBar(QListWidgetItem *item) bars.append(keys.filter((QRegExp(QString("hdd[0-9].*"))))); bars.append(keys.filter((QRegExp(QString("bat.*"))))); - graphicalItems[item->text()]->showConfiguration(bars); + for (int i=0; igetFileName() != item->text()) continue; + graphicalItems[i]->showConfiguration(bars); + break; + } } diff --git a/sources/awesome-widget/deinteraction.cpp b/sources/awesome-widget/deinteraction.cpp index 94a5ccc..7d2a3f9 100644 --- a/sources/awesome-widget/deinteraction.cpp +++ b/sources/awesome-widget/deinteraction.cpp @@ -205,7 +205,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng values[data.keys()[i]] = QString("%1").arg(data[data.keys()[i]].toFloat(), 3, 'f', 0); if (foundBars.indexOf(QRegExp(QString("bar[0-9].*bat"))) > -1) { for (int j=0; jgetBar() != data.keys()[i]) continue; + if (getItemByTag(foundBars[j])->getBar() != data.keys()[i]) continue; values[foundBars[j]] = values[data.keys()[i]]; } } @@ -224,7 +224,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng values[QString("cpu")] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1); if (foundBars.indexOf(QRegExp(QString("bar[0-9].*cpu(?!cl).*"))) > -1) { for (int j=0; jgetBar() != QString("cpu")) continue; + if (getItemByTag(foundBars[j])->getBar() != QString("cpu")) continue; values[foundBars[j]] = QString("%1").arg(data[QString("value")].toFloat()); } } @@ -241,7 +241,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng values[QString("cpu") + number] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1); if (foundBars.indexOf(QRegExp(QString("bar[0-9].*cpu(?!cl).*"))) > -1) { for (int j=0; jgetBar() != (QString("cpu") + number)) continue; + if (getItemByTag(foundBars[j])->getBar() != (QString("cpu") + number)) continue; values[foundBars[j]] = values[QString("cpu") + number]; } } @@ -285,7 +285,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng values[QString("gpu")] = QString("%1").arg(data[QString("GPU")].toFloat(), 5, 'f', 1); if (foundBars.indexOf(QRegExp(QString("bar[0-9].*gpu"))) > -1) { for (int j=0; jgetBar() != QString("gpu")) continue; + if (getItemByTag(foundBars[j])->getBar() != QString("gpu")) continue; values[foundBars[j]] = values[QString("gpu")]; } } @@ -300,7 +300,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng values[QString("hdd") + QString::number(i)] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1); if (foundBars.indexOf(QRegExp(QString("bar[0-9].*hdd([0-9].*"))) > -1) { for (int j=0; jgetBar() != (QString("hdd") + QString::number(i))) continue; + if (getItemByTag(foundBars[j])->getBar() != (QString("hdd") + QString::number(i))) continue; values[foundBars[j]] = values[QString("hdd") + QString::number(i)]; } } @@ -370,7 +370,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng } if (foundBars.indexOf(QRegExp(QString("bar[0-9].*mem"))) > -1) { for (int j=0; jgetBar() != QString("mem")) continue; + if (getItemByTag(foundBars[j])->getBar() != QString("mem")) continue; values[foundBars[j]] = values[QString("mem")]; } } @@ -438,7 +438,7 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng } if (foundBars.indexOf(QRegExp(QString("bar[0-9].*swap"))) > -1) { for (int j=0; jgetBar() != QString("swap")) continue; + if (getItemByTag(foundBars[j])->getBar() != QString("swap")) continue; values[foundBars[j]] = values[QString("swap")]; } } diff --git a/sources/awesome-widget/graphicalitem.cpp b/sources/awesome-widget/graphicalitem.cpp index 91bccf0..46e23e1 100644 --- a/sources/awesome-widget/graphicalitem.cpp +++ b/sources/awesome-widget/graphicalitem.cpp @@ -126,6 +126,14 @@ QString GraphicalItem::getImage(const float value) } +QString GraphicalItem::getFileName() +{ + if (debug) qDebug() << PDEBUG; + + return fileName; +} + + QString GraphicalItem::getName() { if (debug) qDebug() << PDEBUG; diff --git a/sources/awesome-widget/graphicalitem.h b/sources/awesome-widget/graphicalitem.h index ad30901..b9e538f 100644 --- a/sources/awesome-widget/graphicalitem.h +++ b/sources/awesome-widget/graphicalitem.h @@ -45,6 +45,7 @@ public: ~GraphicalItem(); QString getImage(const float value); // get methods + QString getFileName(); QString getName(); QString getComment(); QString getBar(); diff --git a/sources/awesome-widget/reinit.cpp b/sources/awesome-widget/reinit.cpp index bf4ce00..18eea89 100644 --- a/sources/awesome-widget/reinit.cpp +++ b/sources/awesome-widget/reinit.cpp @@ -85,7 +85,7 @@ void AwesomeWidget::updateText(const bool clear) for (int i=0; igetImage(values[foundBars[i]].toFloat())); + text.replace(QString("$") + foundBars[i], getItemByTag(foundBars[i])->getImage(values[foundBars[i]].toFloat())); text.replace(QString("$\\$\\"), QString("$$")); } textLabel->setText(formatLine[0] + text + formatLine[1]);