mirror of
				https://github.com/arcan1s/awesome-widgets.git
				synced 2025-10-31 05:13:40 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			master
			...
			ce93664f5b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ce93664f5b | 
| @ -191,10 +191,6 @@ KCM.SimpleKCM { | |||||||
|     Component.onCompleted: { |     Component.onCompleted: { | ||||||
|         // init submodule |         // init submodule | ||||||
|         awKeys.updateCache() |         awKeys.updateCache() | ||||||
|  |  | ||||||
|         // update hdd model |  | ||||||
|         hdd.model = awKeys.getHddDevices() |  | ||||||
|         hdd.onCompleted |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     Component.onDestruction: { |     Component.onDestruction: { | ||||||
|  | |||||||
| @ -139,7 +139,7 @@ void AWDataEngineAggregator::sensorRemoved(const QString &_sensor) | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| void AWDataEngineAggregator::updateData(KSysGuard::SensorDataList _data) | void AWDataEngineAggregator::updateData(const KSysGuard::SensorDataList &_data) | ||||||
| { | { | ||||||
|     emit(dataUpdated(m_sensors, _data)); |     emit(dataUpdated(m_sensors, _data)); | ||||||
| } | } | ||||||
| @ -147,9 +147,9 @@ void AWDataEngineAggregator::updateData(KSysGuard::SensorDataList _data) | |||||||
|  |  | ||||||
| void AWDataEngineAggregator::updateSensors(const QHash<QString, KSysGuard::SensorInfo> &_sensors) | void AWDataEngineAggregator::updateSensors(const QHash<QString, KSysGuard::SensorInfo> &_sensors) | ||||||
| { | { | ||||||
|     for (auto sensor = _sensors.cbegin(); sensor != _sensors.cend(); ++sensor) { |     for (auto [source, sensor] : _sensors.asKeyValueRange()) { | ||||||
|         if (!isValidSensor(sensor.value())) |         if (!isValidSensor(sensor)) | ||||||
|             continue; |             continue; | ||||||
|         m_sensors.insert(sensor.key(), sensor.value()); |         m_sensors.insert(source, sensor); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -49,7 +49,7 @@ public slots: | |||||||
|     void dropSource(const QString &_source); |     void dropSource(const QString &_source); | ||||||
|     void sensorAdded(const QString &_sensor); |     void sensorAdded(const QString &_sensor); | ||||||
|     void sensorRemoved(const QString &_sensor); |     void sensorRemoved(const QString &_sensor); | ||||||
|     void updateData(KSysGuard::SensorDataList _data); |     void updateData(const KSysGuard::SensorDataList &_data); | ||||||
|     void updateSensors(const QHash<QString, KSysGuard::SensorInfo> &_sensors); |     void updateSensors(const QHash<QString, KSysGuard::SensorInfo> &_sensors); | ||||||
|  |  | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -153,26 +153,6 @@ QStringList AWKeys::dictKeys(const bool _sorted, const QString &_regexp) const | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| QVariantList AWKeys::getHddDevices() const |  | ||||||
| { |  | ||||||
|     QStringList hddDevices = m_keyOperator->devices("hdd"); |  | ||||||
|     // required by selector in the UI |  | ||||||
|     hddDevices.insert(0, "disable"); |  | ||||||
|     hddDevices.insert(0, "auto"); |  | ||||||
|  |  | ||||||
|     // build model |  | ||||||
|     QVariantList devices; |  | ||||||
|     for (auto &device : hddDevices) { |  | ||||||
|         QVariantMap model; |  | ||||||
|         model["label"] = device; |  | ||||||
|         model["name"] = device; |  | ||||||
|         devices.append(model); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     return devices; |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| QString AWKeys::infoByKey(const QString &_key) const | QString AWKeys::infoByKey(const QString &_key) const | ||||||
| { | { | ||||||
|     qCDebug(LOG_AW) << "Requested info for key" << _key; |     qCDebug(LOG_AW) << "Requested info for key" << _key; | ||||||
| @ -202,12 +182,14 @@ void AWKeys::editItem(const QString &_type) | |||||||
|  |  | ||||||
| void AWKeys::dataUpdated(const QHash<QString, KSysGuard::SensorInfo> &_sensors, const KSysGuard::SensorDataList &_data) | void AWKeys::dataUpdated(const QHash<QString, KSysGuard::SensorInfo> &_sensors, const KSysGuard::SensorDataList &_data) | ||||||
| { | { | ||||||
|     for (auto &single : _data) { |     qCDebug(LOG_AW) << "Update data for" << _data.count() << "items"; | ||||||
|         if (_sensors.contains(single.sensorProperty)) { |  | ||||||
|             setDataBySource(single.sensorProperty, _sensors.value(single.sensorProperty), single); |     // though it is better to use QtConcurrent::map here, but it might cause stack corruption | ||||||
|         } |     for (auto &data : _data) { | ||||||
|         // TODO use QtConcurrent::map or something like that |         if (!_sensors.contains(data.sensorProperty)) | ||||||
|         //        QtConcurrent::run(m_threadPool, this, &AWKeys::setDataBySource, "ss", sensor); |             continue; | ||||||
|  |         auto sensor = _sensors[data.sensorProperty]; | ||||||
|  |         std::ignore = QtConcurrent::run(m_threadPool, &AWKeys::setDataBySource, this, data.sensorProperty, sensor, data.payload); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -272,7 +254,7 @@ void AWKeys::calculateValues() | |||||||
|     m_values["memtotmb"] = m_values["memusedmb"].toLongLong() + m_values["memfreemb"].toLongLong(); |     m_values["memtotmb"] = m_values["memusedmb"].toLongLong() + m_values["memfreemb"].toLongLong(); | ||||||
|     m_values["memtotgb"] = m_values["memusedgb"].toDouble() + m_values["memfreegb"].toDouble(); |     m_values["memtotgb"] = m_values["memusedgb"].toDouble() + m_values["memfreegb"].toDouble(); | ||||||
|     // mem |     // mem | ||||||
|     m_values["mem"] = 100.0f * m_values["memmb"].toDouble() / m_values["memtotmb"].toDouble(); |     m_values["mem"] = 100.0 * m_values["memmb"].toDouble() / m_values["memtotmb"].toDouble(); | ||||||
|  |  | ||||||
|     // up, down, upkb, downkb, upunits, downunits |     // up, down, upkb, downkb, upunits, downunits | ||||||
|     int netIndex = m_keyOperator->devices("net").indexOf(m_values["netdev"].toString()); |     int netIndex = m_keyOperator->devices("net").indexOf(m_values["netdev"].toString()); | ||||||
| @ -291,7 +273,7 @@ void AWKeys::calculateValues() | |||||||
|     m_values["swaptotmb"] = m_values["swapmb"].toLongLong() + m_values["swapfreemb"].toLongLong(); |     m_values["swaptotmb"] = m_values["swapmb"].toLongLong() + m_values["swapfreemb"].toLongLong(); | ||||||
|     m_values["swaptotgb"] = m_values["swapgb"].toDouble() + m_values["swapfreegb"].toDouble(); |     m_values["swaptotgb"] = m_values["swapgb"].toDouble() + m_values["swapfreegb"].toDouble(); | ||||||
|     // swap |     // swap | ||||||
|     m_values["swap"] = 100.0f * m_values["swapmb"].toDouble() / m_values["swaptotmb"].toDouble(); |     m_values["swap"] = 100.0 * m_values["swapmb"].toDouble() / m_values["swaptotmb"].toDouble(); | ||||||
|  |  | ||||||
|     // user defined keys |     // user defined keys | ||||||
|     for (auto &key : m_keyOperator->userKeys()) |     for (auto &key : m_keyOperator->userKeys()) | ||||||
| @ -357,10 +339,9 @@ QString AWKeys::parsePattern(QString _pattern) const | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| void AWKeys::setDataBySource(const QString &_source, const KSysGuard::SensorInfo &_sensor, | void AWKeys::setDataBySource(const QString &_source, const KSysGuard::SensorInfo &_sensor, const QVariant &_value) | ||||||
|                              const KSysGuard::SensorData &_data) |  | ||||||
| { | { | ||||||
|     qCDebug(LOG_AW) << "Source" << _source << _sensor.name << "with data" << _data.payload; |     qCDebug(LOG_AW) << "Source" << _source << _sensor.name << "with data" << _value; | ||||||
|  |  | ||||||
|     // first list init |     // first list init | ||||||
|     auto tags = m_aggregator->keysFromSource(_source); |     auto tags = m_aggregator->keysFromSource(_source); | ||||||
| @ -374,6 +355,6 @@ void AWKeys::setDataBySource(const QString &_source, const KSysGuard::SensorInfo | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     m_mutex.lock(); |     m_mutex.lock(); | ||||||
|     std::for_each(tags.cbegin(), tags.cend(), [this, &_data](const QString &tag) { m_values[tag] = _data.payload; }); |     std::for_each(tags.cbegin(), tags.cend(), [this, _value](const QString &tag) { m_values[tag] = _value; }); | ||||||
|     m_mutex.unlock(); |     m_mutex.unlock(); | ||||||
| } | } | ||||||
|  | |||||||
| @ -46,22 +46,19 @@ public: | |||||||
|     Q_INVOKABLE void updateCache(); |     Q_INVOKABLE void updateCache(); | ||||||
|     // keys |     // keys | ||||||
|     Q_INVOKABLE [[nodiscard]] QStringList dictKeys(bool _sorted = false, const QString &_regexp = "") const; |     Q_INVOKABLE [[nodiscard]] QStringList dictKeys(bool _sorted = false, const QString &_regexp = "") const; | ||||||
|     Q_INVOKABLE [[nodiscard]] QVariantList getHddDevices() const; |  | ||||||
|     // values |     // values | ||||||
|     Q_INVOKABLE [[nodiscard]] QString infoByKey(const QString &_key) const; |     Q_INVOKABLE [[nodiscard]] QString infoByKey(const QString &_key) const; | ||||||
|     Q_INVOKABLE [[nodiscard]] QString valueByKey(const QString &_key) const; |     Q_INVOKABLE [[nodiscard]] QString valueByKey(const QString &_key) const; | ||||||
|     // configuration |     // configuration | ||||||
|     Q_INVOKABLE void editItem(const QString &_type); |     Q_INVOKABLE void editItem(const QString &_type); | ||||||
|  |  | ||||||
| public slots: |  | ||||||
|     void dataUpdated(const QHash<QString, KSysGuard::SensorInfo> &_sensors, const KSysGuard::SensorDataList &_data); |  | ||||||
|  |  | ||||||
| signals: | signals: | ||||||
|     void dropSourceFromDataengine(const QString &_source); |     void dropSourceFromDataengine(const QString &_source); | ||||||
|     void needTextToBeUpdated(const QString &_newText) const; |     void needTextToBeUpdated(const QString &_newText) const; | ||||||
|     void needToolTipToBeUpdated(const QString &_newText) const; |     void needToolTipToBeUpdated(const QString &_newText) const; | ||||||
|  |  | ||||||
| private slots: | private slots: | ||||||
|  |     void dataUpdated(const QHash<QString, KSysGuard::SensorInfo> &_sensors, const KSysGuard::SensorDataList &_data); | ||||||
|     void reinitKeys(const QStringList &_currentKeys); |     void reinitKeys(const QStringList &_currentKeys); | ||||||
|     void updateTextData(); |     void updateTextData(); | ||||||
|  |  | ||||||
| @ -70,8 +67,7 @@ private: | |||||||
|     void calculateValues(); |     void calculateValues(); | ||||||
|     void createDBusInterface(); |     void createDBusInterface(); | ||||||
|     [[nodiscard]] QString parsePattern(QString _pattern) const; |     [[nodiscard]] QString parsePattern(QString _pattern) const; | ||||||
|     void setDataBySource(const QString &_source, const KSysGuard::SensorInfo &_sensor, |     void setDataBySource(const QString &_source, const KSysGuard::SensorInfo &_sensor, const QVariant &_value); | ||||||
|                          const KSysGuard::SensorData &_data); |  | ||||||
|     // objects |     // objects | ||||||
|     AWDataAggregator *m_dataAggregator = nullptr; |     AWDataAggregator *m_dataAggregator = nullptr; | ||||||
|     AWDataEngineAggregator *m_dataEngineAggregator = nullptr; |     AWDataEngineAggregator *m_dataEngineAggregator = nullptr; | ||||||
|  | |||||||
| @ -73,10 +73,7 @@ void ExtSysMonSensor::update() | |||||||
|  |  | ||||||
| void ExtSysMonSensor::loadProperties() | void ExtSysMonSensor::loadProperties() | ||||||
| { | { | ||||||
|     auto sensors = m_source->sources(); |     for (auto [source, info] : m_source->sources().asKeyValueRange()) { | ||||||
|     for (auto sensor = sensors.cbegin(); sensor != sensors.cend(); ++sensor) { |  | ||||||
|         auto source = sensor.key(); |  | ||||||
|         auto info = sensor.value(); |  | ||||||
|         auto property = new KSysGuard::SensorProperty(source, info->name, this); |         auto property = new KSysGuard::SensorProperty(source, info->name, this); | ||||||
|  |  | ||||||
|         property->setUnit(info->unit); |         property->setUnit(info->unit); | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ | |||||||
| find_package(Gettext REQUIRED) | find_package(Gettext REQUIRED) | ||||||
|  |  | ||||||
| # main qt libraries | # main qt libraries | ||||||
| find_package(Qt6 6.6.0 REQUIRED COMPONENTS Core DBus Network Qml Test Widgets) | find_package(Qt6 6.6.0 REQUIRED COMPONENTS Core Concurrent DBus Network Qml Test Widgets) | ||||||
| add_definitions( | add_definitions( | ||||||
|         ${Qt6Core_DEFINITIONS} ${Qt6DBus_DEFINITIONS} ${Qt6Network_DEFINITIONS} |         ${Qt6Core_DEFINITIONS} ${Qt6DBus_DEFINITIONS} ${Qt6Network_DEFINITIONS} | ||||||
|         ${Qt6Qml_DEFINITIONS} ${Qt6Widgets_DEFINITIONS} |         ${Qt6Qml_DEFINITIONS} ${Qt6Widgets_DEFINITIONS} | ||||||
| @ -12,7 +12,7 @@ set(Qt_INCLUDE | |||||||
|         ${Qt6Qml_INCLUDE_DIRS} ${Qt6Widgets_INCLUDE_DIRS} |         ${Qt6Qml_INCLUDE_DIRS} ${Qt6Widgets_INCLUDE_DIRS} | ||||||
| ) | ) | ||||||
| set(Qt_LIBRARIES | set(Qt_LIBRARIES | ||||||
|         ${Qt6Core_LIBRARIES} ${Qt6DBus_LIBRARIES} ${Qt6Network_LIBRARIES} |         ${Qt6Core_LIBRARIES} ${Qt6Concurrent_LIBRARIES} ${Qt6DBus_LIBRARIES} ${Qt6Network_LIBRARIES} | ||||||
|         ${Qt6Qml_LIBRARIES} ${Qt6Widgets_LIBRARIES} |         ${Qt6Qml_LIBRARIES} ${Qt6Widgets_LIBRARIES} | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | |||||||
| @ -73,12 +73,6 @@ void TestAWKeys::cleanupTestCase() | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| void TestAWKeys::test_hddDevices() |  | ||||||
| { |  | ||||||
|     QVERIFY(plugin->getHddDevices().count() >= 2); |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| void TestAWKeys::test_dictKeys() | void TestAWKeys::test_dictKeys() | ||||||
| { | { | ||||||
|     auto keys = plugin->dictKeys(); |     auto keys = plugin->dictKeys(); | ||||||
|  | |||||||
| @ -31,7 +31,6 @@ private slots: | |||||||
|     void initTestCase(); |     void initTestCase(); | ||||||
|     void cleanupTestCase(); |     void cleanupTestCase(); | ||||||
|     // test |     // test | ||||||
|     void test_hddDevices(); |  | ||||||
|     void test_dictKeys(); |     void test_dictKeys(); | ||||||
|     void test_pattern(); |     void test_pattern(); | ||||||
|     void test_tooltip(); |     void test_tooltip(); | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user