diff --git a/sources/awesome-widget/package/contents/config/main.xml b/sources/awesome-widget/package/contents/config/main.xml index b5d715e..3809470 100644 --- a/sources/awesome-widget/package/contents/config/main.xml +++ b/sources/awesome-widget/package/contents/config/main.xml @@ -44,9 +44,6 @@ 1000 - - 0 - Celsius @@ -62,15 +59,9 @@ ( ) - + 100 - - false - - - - diff --git a/sources/awesome-widget/package/contents/ui/advanced.qml b/sources/awesome-widget/package/contents/ui/advanced.qml index d83b319..f66c304 100644 --- a/sources/awesome-widget/package/contents/ui/advanced.qml +++ b/sources/awesome-widget/package/contents/ui/advanced.qml @@ -41,15 +41,12 @@ KCM.SimpleKCM { property alias cfg_height: widgetHeight.value property alias cfg_width: widgetWidth.value property alias cfg_interval: update.value - property alias cfg_queueLimit: queueLimit.value property string cfg_tempUnits: tempUnits.value property alias cfg_customTime: customTime.value property alias cfg_customUptime: customUptime.value property alias cfg_acOnline: acOnline.value property alias cfg_acOffline: acOffline.value - property alias cfg_telemetryCount: telemetryCount.value - property alias cfg_telemetryRemote: telemetryRemote.checked - property alias cfg_telemetryId: telemetryId.value + property alias cfg_historyCount: historyCount.value Column { anchors.fill: parent @@ -116,15 +113,6 @@ KCM.SimpleKCM { value: plasmoid.configuration.interval } - IntegerSelector { - id: queueLimit - maximumValue: 99 - minimumValue: 0 - stepSize: 1 - text: i18n("Messages queue limit") - value: plasmoid.configuration.queueLimit - } - ComboBoxSelector { id: tempUnits model: [ @@ -226,30 +214,19 @@ KCM.SimpleKCM { GroupBox { height: implicitHeight width: parent.width - title: i18n("Telemetry") + title: i18n("History") Column { height: implicitHeight width: parent.width - CheckBoxSelector { - id: telemetryRemote - text: i18n("Enable remote telemetry") - } - IntegerSelector { - id: telemetryCount + id: historyCount maximumValue: 10000 minimumValue: 0 stepSize: 50 text: i18n("History count") - value: plasmoid.configuration.telemetryCount - } - - LineSelector { - id: telemetryId - text: i18n("Telemetry ID") - value: plasmoid.configuration.telemetryId + value: plasmoid.configuration.historyCount } } } diff --git a/sources/awesome-widget/package/contents/ui/main.qml b/sources/awesome-widget/package/contents/ui/main.qml index e66688d..f0d5356 100644 --- a/sources/awesome-widget/package/contents/ui/main.qml +++ b/sources/awesome-widget/package/contents/ui/main.qml @@ -168,8 +168,7 @@ PlasmoidItem { // init submodule awKeys.initDataAggregator(tooltipSettings) - awKeys.initKeys(plasmoid.configuration.text, plasmoid.configuration.interval, - plasmoid.configuration.queueLimit, plasmoid.configuration.optimize) + awKeys.initKeys(plasmoid.configuration.text, plasmoid.configuration.interval, plasmoid.configuration.optimize) awKeys.setWrapNewLines(plasmoid.configuration.wrapNewLines) // configure aggregator awKeys.setAggregatorProperty("acOffline", plasmoid.configuration.acOffline) @@ -178,20 +177,8 @@ PlasmoidItem { awKeys.setAggregatorProperty("customUptime", plasmoid.configuration.customUptime) awKeys.setAggregatorProperty("tempUnits", plasmoid.configuration.tempUnits) awKeys.setAggregatorProperty("translate", plasmoid.configuration.translateStrings) - // update telemetry ID - if (plasmoid.configuration.telemetryId.length === 0) - plasmoid.configuration.telemetryId = generateUuid() // save telemetry - awTelemetryHandler.init(plasmoid.configuration.telemetryCount, - plasmoid.configuration.telemetryId) + awTelemetryHandler.init(plasmoid.configuration.historyCount) awTelemetryHandler.put("awwidgetconfig", plasmoid.configuration.text) } - - // code from http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript - function generateUuid() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) { - let r = Math.random() * 16 | 0, v = c === "x" ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); - } } diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp index 2042966..dfe270f 100644 --- a/sources/awesome-widget/plugin/awkeys.cpp +++ b/sources/awesome-widget/plugin/awkeys.cpp @@ -19,9 +19,8 @@ #include #include -#include +#include #include -#include #include "awdataaggregator.h" #include "awdataengineaggregator.h" @@ -42,9 +41,6 @@ AWKeys::AWKeys(QObject *_parent) for (auto &metadata : AWDebug::getBuildData()) qCDebug(LOG_AW) << metadata; - // thread pool - m_threadPool = new QThreadPool(this); - m_aggregator = new AWKeysAggregator(this); m_dataAggregator = new AWDataAggregator(this); m_dataEngineAggregator = new AWDataEngineAggregator(this); @@ -91,14 +87,12 @@ void AWKeys::initDataAggregator(const QVariantMap &_tooltipParams) } -void AWKeys::initKeys(const QString &_currentPattern, const int _interval, const int _limit, const bool _optimize) +void AWKeys::initKeys(const QString &_currentPattern, const int _interval, const bool _optimize) { - qCDebug(LOG_AW) << "Pattern" << _currentPattern << "with interval" << _interval << "and queue limit" << _limit - << "with optimization" << _optimize; + qCDebug(LOG_AW) << "Pattern" << _currentPattern << "with interval" << _interval << "with optimization" << _optimize; // init m_optimize = _optimize; - m_threadPool->setMaxThreadCount(_limit == 0 ? QThread::idealThreadCount() : _limit); // child objects m_aggregator->initFormatters(); m_keyOperator->setPattern(_currentPattern); @@ -184,15 +178,11 @@ void AWKeys::dataUpdated(const QHash &_sensors, { qCDebug(LOG_AW) << "Update data for" << _data.count() << "items"; - // though it is better to use QtConcurrent::map here, but it might cause stack corruption for (auto &data : _data) { if (!_sensors.contains(data.sensorProperty)) continue; auto sensor = _sensors[data.sensorProperty]; setDataBySource(data.sensorProperty, sensor, data.payload); - // std::ignore = QtConcurrent::run(m_threadPool, &AWKeys::setDataBySource, this, data.sensorProperty, - // sensor, - // data.payload); } } @@ -208,7 +198,7 @@ void AWKeys::reinitKeys(const QStringList &_currentKeys) // generate list of required keys for bars QStringList barKeys; for (auto &bar : m_foundBars) { - GraphicalItem *item = m_keyOperator->giByKey(bar); + auto item = m_keyOperator->giByKey(bar); if (item->isCustom()) item->setUsedKeys(AWPatternFunctions::findKeys(item->bar(), _currentKeys, false)); else @@ -228,12 +218,10 @@ void AWKeys::reinitKeys(const QStringList &_currentKeys) void AWKeys::updateTextData() { // do not do it in parallel to avoid race condition - m_mutex.lock(); calculateValues(); auto text = parsePattern(m_keyOperator->pattern()); // update tooltip values under lock m_dataAggregator->dataUpdate(m_values); - m_mutex.unlock(); emit(needTextToBeUpdated(text)); } @@ -244,9 +232,9 @@ void AWKeys::updateTextData() void AWKeys::calculateValues() { // hddtot* - QStringList mountDevices = m_keyOperator->devices("mount"); + auto mountDevices = m_keyOperator->devices("mount"); for (auto &device : mountDevices) { - int index = mountDevices.indexOf(device); + auto index = mountDevices.indexOf(device); m_values[QString("hddtotmb%1").arg(index)] = m_values[QString("hddfreemb%1").arg(index)].toDouble() + m_values[QString("hddmb%1").arg(index)].toDouble(); m_values[QString("hddtotgb%1").arg(index)] = m_values[QString("hddfreegb%1").arg(index)].toDouble() @@ -260,7 +248,7 @@ void AWKeys::calculateValues() m_values["mem"] = 100.0 * m_values["memmb"].toDouble() / m_values["memtotmb"].toDouble(); // up, down, upkb, downkb, upunits, downunits - int netIndex = m_keyOperator->devices("net").indexOf(m_values["netdev"].toString()); + auto netIndex = m_keyOperator->devices("net").indexOf(m_values["netdev"].toString()); m_values["down"] = m_values[QString("down%1").arg(netIndex)]; m_values["downkb"] = m_values[QString("downkb%1").arg(netIndex)]; m_values["downtot"] = m_values[QString("downtot%1").arg(netIndex)]; @@ -294,7 +282,7 @@ void AWKeys::createDBusInterface() auto id = reinterpret_cast(this); // create session - QDBusConnection instanceBus = QDBusConnection::sessionBus(); + auto instanceBus = QDBusConnection::sessionBus(); // HACK we are going to use different services because it binds to // application if (instanceBus.registerService(QString("%1.i%2").arg(AWDBUS_SERVICE).arg(id))) { @@ -305,7 +293,7 @@ void AWKeys::createDBusInterface() } // and same instance but for id independent service - QDBusConnection commonBus = QDBusConnection::sessionBus(); + auto commonBus = QDBusConnection::sessionBus(); if (commonBus.registerService(AWDBUS_SERVICE)) commonBus.registerObject(AWDBUS_PATH, new AWDBusAdaptor(this), QDBusConnection::ExportAllContents); } @@ -326,10 +314,10 @@ QString AWKeys::parsePattern(QString _pattern) const // bars for (auto &bar : m_foundBars) { - GraphicalItem *item = m_keyOperator->giByKey(bar); - QString image = item->isCustom() ? item->image( - AWPatternFunctions::expandLambdas(item->bar(), m_aggregator, m_values, item->usedKeys())) - : item->image(m_values[item->bar()]); + auto item = m_keyOperator->giByKey(bar); + auto image = item->isCustom() ? item->image( + AWPatternFunctions::expandLambdas(item->bar(), m_aggregator, m_values, item->usedKeys())) + : item->image(m_values[item->bar()]); _pattern.replace(QString("$%1").arg(bar), image); } @@ -357,7 +345,5 @@ void AWKeys::setDataBySource(const QString &_source, const KSysGuard::SensorInfo return emit(dropSourceFromDataengine(_source)); } - m_mutex.lock(); std::for_each(tags.cbegin(), tags.cend(), [this, _value](const QString &tag) { m_values[tag] = _value; }); - m_mutex.unlock(); } diff --git a/sources/awesome-widget/plugin/awkeys.h b/sources/awesome-widget/plugin/awkeys.h index c5dbefa..2a1322e 100644 --- a/sources/awesome-widget/plugin/awkeys.h +++ b/sources/awesome-widget/plugin/awkeys.h @@ -17,7 +17,6 @@ #pragma once -#include #include #include @@ -27,7 +26,6 @@ class AWDataAggregator; class AWDataEngineAggregator; class AWKeyOperations; class AWKeysAggregator; -class QThreadPool; class QTimer; class AWKeys : public QObject @@ -38,7 +36,7 @@ public: explicit AWKeys(QObject *_parent = nullptr); ~AWKeys() override; Q_INVOKABLE void initDataAggregator(const QVariantMap &_tooltipParams); - Q_INVOKABLE void initKeys(const QString &_currentPattern, int _interval, int _limit, bool _optimize); + Q_INVOKABLE void initKeys(const QString &_currentPattern, int _interval, bool _optimize); Q_INVOKABLE void setAggregatorProperty(const QString &_key, const QVariant &_value); Q_INVOKABLE void setWrapNewLines(bool _wrap); // additional method to force load keys from Qml UI. Used in some @@ -80,7 +78,4 @@ private: QVariantHash m_values; bool m_optimize = false; bool m_wrapNewLines = false; - // multithread features - QThreadPool *m_threadPool = nullptr; - QMutex m_mutex; }; diff --git a/sources/awesome-widget/plugin/awtelemetryhandler.cpp b/sources/awesome-widget/plugin/awtelemetryhandler.cpp index cb899e0..3b57b3c 100644 --- a/sources/awesome-widget/plugin/awtelemetryhandler.cpp +++ b/sources/awesome-widget/plugin/awtelemetryhandler.cpp @@ -25,17 +25,13 @@ #include "awdebug.h" -AWTelemetryHandler::AWTelemetryHandler(QObject *_parent, const QString &_clientId) +AWTelemetryHandler::AWTelemetryHandler(QObject *_parent) : QObject(_parent) { qCDebug(LOG_AW) << __PRETTY_FUNCTION__; m_localFile = QString("%1/awesomewidgets/telemetry.ini") .arg(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation)); - - // override client id if any - if (!_clientId.isEmpty()) - m_clientId = _clientId; } @@ -63,12 +59,11 @@ QString AWTelemetryHandler::getLast(const QString &_group) const } -void AWTelemetryHandler::init(const int _count, const QString &_clientId) +void AWTelemetryHandler::init(const int _count) { - qCDebug(LOG_AW) << "Init telemetry with count" << _count << "client ID" << _clientId; + qCDebug(LOG_AW) << "Init telemetry with count" << _count; m_storeCount = _count; - m_clientId = _clientId; } diff --git a/sources/awesome-widget/plugin/awtelemetryhandler.h b/sources/awesome-widget/plugin/awtelemetryhandler.h index f9b14cf..dd202d4 100644 --- a/sources/awesome-widget/plugin/awtelemetryhandler.h +++ b/sources/awesome-widget/plugin/awtelemetryhandler.h @@ -25,16 +25,15 @@ class AWTelemetryHandler : public QObject Q_OBJECT public: - explicit AWTelemetryHandler(QObject *_parent = nullptr, const QString &_clientId = ""); + explicit AWTelemetryHandler(QObject *_parent = nullptr); ~AWTelemetryHandler() override = default; Q_INVOKABLE [[nodiscard]] QStringList get(const QString &_group) const; Q_INVOKABLE [[nodiscard]] QString getLast(const QString &_group) const; - Q_INVOKABLE void init(int _count, const QString &_clientId); + Q_INVOKABLE void init(int _count); Q_INVOKABLE [[nodiscard]] bool put(const QString &_group, const QString &_value) const; private: static QString getKey(int _count); - QString m_clientId; QString m_localFile; int m_storeCount = 0; }; diff --git a/sources/test/testawkeys.cpp b/sources/test/testawkeys.cpp index fae42cf..0c9c0a7 100644 --- a/sources/test/testawkeys.cpp +++ b/sources/test/testawkeys.cpp @@ -63,7 +63,7 @@ void TestAWKeys::initTestCase() plugin->setAggregatorProperty("tempUnits", "Celsius"); plugin->setAggregatorProperty("translate", false); - plugin->initKeys(pattern, interval, 0, false); + plugin->initKeys(pattern, interval, false); } @@ -89,7 +89,7 @@ void TestAWKeys::test_dictKeys() void TestAWKeys::test_pattern() { - plugin->initKeys(pattern, interval, 0, false); + plugin->initKeys(pattern, interval, false); QSignalSpy spy(plugin, SIGNAL(needTextToBeUpdated(const QString))); QVERIFY(spy.wait(5 * interval)); diff --git a/sources/test/testawtelemetryhandler.cpp b/sources/test/testawtelemetryhandler.cpp index d0ef441..a9a15cb 100644 --- a/sources/test/testawtelemetryhandler.cpp +++ b/sources/test/testawtelemetryhandler.cpp @@ -27,7 +27,7 @@ void TestAWTelemetryHandler::initTestCase() { AWTestLibrary::init(); plugin = new AWTelemetryHandler(this); - plugin->init(1, telemetryId); + plugin->init(1); telemetryData = AWTestLibrary::randomString(); telemetryGroup = AWTestLibrary::randomString(); } diff --git a/sources/test/testawtelemetryhandler.h b/sources/test/testawtelemetryhandler.h index defecfa..d79d214 100644 --- a/sources/test/testawtelemetryhandler.h +++ b/sources/test/testawtelemetryhandler.h @@ -39,7 +39,6 @@ private: AWTelemetryHandler *plugin = nullptr; QString telemetryData; QString telemetryGroup; - QString telemetryId = "autotest"; QString telemetryStatus = "saved"; QString telemetryValidGroup = "awwidgetconfig"; };