mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-07-10 04:15:51 +00:00
port dataengin
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
set(SUBPROJECT plasma_dataengine_extsysmon)
|
||||
set(SUBPROJECT ksystemstats_plugin_extsysmon)
|
||||
message(STATUS "Subproject ${SUBPROJECT}")
|
||||
add_definitions(-DTRANSLATION_DOMAIN=\"plasma_applet_org.kde.plasma.awesomewidget\")
|
||||
|
||||
@ -12,15 +12,10 @@ include_directories(
|
||||
${Kf6_INCLUDE}
|
||||
)
|
||||
|
||||
file(GLOB SUBPROJECT_DESKTOP_IN *.desktop)
|
||||
file(RELATIVE_PATH SUBPROJECT_DESKTOP ${CMAKE_SOURCE_DIR} ${SUBPROJECT_DESKTOP_IN})
|
||||
file(GLOB SUBPROJECT_SOURCE *.cpp ${CMAKE_SOURCE_DIR}/*.cpp)
|
||||
file(GLOB SUBPROJECT_HEADER *.h)
|
||||
file(GLOB SUBPROJECT_CONF *.conf)
|
||||
|
||||
# prepare
|
||||
configure_file(${SUBPROJECT_DESKTOP_IN} ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP})
|
||||
|
||||
# make
|
||||
add_library(${SUBPROJECT} MODULE ${SUBPROJECT_SOURCE} ${SUBPROJECT_HEADER})
|
||||
target_link_libraries(${SUBPROJECT}
|
||||
@ -28,6 +23,5 @@ target_link_libraries(${SUBPROJECT}
|
||||
${Qt_LIBRARIES} ${Kf6_LIBRARIES})
|
||||
|
||||
# install
|
||||
install(TARGETS ${SUBPROJECT} DESTINATION ${PLUGIN_INSTALL_DIR}/plasma/dataengine)
|
||||
#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBPROJECT_DESKTOP} DESTINATION ${SERVICES_INSTALL_DIR})
|
||||
install(TARGETS ${SUBPROJECT} DESTINATION ${KDE_INSTALL_PLUGINDIR}/ksystemstats)
|
||||
install(FILES ${SUBPROJECT_CONF} DESTINATION ${KDE_INSTALL_CONFDIR})
|
||||
|
@ -17,6 +17,7 @@
|
||||
|
||||
#include "extsysmon.h"
|
||||
|
||||
#include <KPluginFactory>
|
||||
#include <QFile>
|
||||
#include <QRegularExpression>
|
||||
#include <QSettings>
|
||||
@ -29,21 +30,16 @@
|
||||
|
||||
|
||||
ExtendedSysMon::ExtendedSysMon(QObject *_parent, const QVariantList &_args)
|
||||
: Plasma::DataEngine(_parent, _args)
|
||||
: KSysGuard::SensorPlugin(_parent, _args)
|
||||
{
|
||||
Q_UNUSED(_args)
|
||||
qSetMessagePattern(AWDebug::LOG_FORMAT);
|
||||
qCDebug(LOG_ESM) << __PRETTY_FUNCTION__;
|
||||
for (auto &metadata : AWDebug::getBuildData())
|
||||
qCDebug(LOG_ESM) << metadata;
|
||||
|
||||
setMinimumPollingInterval(333);
|
||||
readConfiguration();
|
||||
|
||||
// init aggregator
|
||||
m_aggregator = new ExtSysMonAggregator(this, m_configuration);
|
||||
for (auto &source : m_aggregator->sources())
|
||||
setData(source, m_aggregator->initialData(source));
|
||||
addContainer(new ExtSysMonAggregator("extsysmon", "extsysmon", this, m_configuration));
|
||||
}
|
||||
|
||||
|
||||
@ -53,35 +49,9 @@ ExtendedSysMon::~ExtendedSysMon()
|
||||
}
|
||||
|
||||
|
||||
QStringList ExtendedSysMon::sources() const
|
||||
void ExtendedSysMon::update()
|
||||
{
|
||||
return m_aggregator->sources();
|
||||
}
|
||||
|
||||
|
||||
bool ExtendedSysMon::sourceRequestEvent(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Source" << _source;
|
||||
|
||||
return updateSourceEvent(_source);
|
||||
}
|
||||
|
||||
|
||||
bool ExtendedSysMon::updateSourceEvent(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Source" << _source;
|
||||
|
||||
if (m_aggregator->hasSource(_source)) {
|
||||
QVariant data = m_aggregator->data(_source);
|
||||
if (data.isNull())
|
||||
return false;
|
||||
setData(_source, "value", data);
|
||||
} else {
|
||||
qCWarning(LOG_ESM) << "Unknown source" << _source;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
// m_aggregator->update();
|
||||
}
|
||||
|
||||
|
||||
@ -150,6 +120,6 @@ QHash<QString, QString> ExtendedSysMon::updateConfiguration(QHash<QString, QStri
|
||||
}
|
||||
|
||||
|
||||
K_EXPORT_PLASMA_DATAENGINE_WITH_JSON(extsysmon, ExtendedSysMon, "plasma-dataengine-extsysmon.json")
|
||||
K_PLUGIN_CLASS_WITH_JSON(ExtendedSysMon, "metadata.json")
|
||||
|
||||
#include "extsysmon.moc"
|
||||
|
@ -18,12 +18,10 @@
|
||||
#ifndef EXTSYSMON_H
|
||||
#define EXTSYSMON_H
|
||||
|
||||
#include <Plasma/Plasma/DataEngine>
|
||||
#include <ksysguard/systemstats/SensorPlugin.h>
|
||||
|
||||
|
||||
class ExtSysMonAggregator;
|
||||
|
||||
class ExtendedSysMon : public Plasma::DataEngine
|
||||
class ExtendedSysMon : public KSysGuard::SensorPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@ -31,14 +29,12 @@ public:
|
||||
explicit ExtendedSysMon(QObject *_parent, const QVariantList &_args);
|
||||
~ExtendedSysMon() override;
|
||||
|
||||
protected:
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
bool sourceRequestEvent(const QString &_source) override;
|
||||
bool updateSourceEvent(const QString &_source) override;
|
||||
[[nodiscard]] QString providerName() const override { return QStringLiteral("extsysmon"); }
|
||||
|
||||
void update() override;
|
||||
|
||||
private:
|
||||
// configuration
|
||||
ExtSysMonAggregator *m_aggregator = nullptr;
|
||||
QHash<QString, QString> m_configuration;
|
||||
// methods
|
||||
void readConfiguration();
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "batterysource.h"
|
||||
#include "customsource.h"
|
||||
#include "desktopsource.h"
|
||||
#include "extsysmonsensor.h"
|
||||
#include "gpuloadsource.h"
|
||||
#include "gputempsource.h"
|
||||
#include "hddtempsource.h"
|
||||
@ -35,8 +36,9 @@
|
||||
#include "weathersource.h"
|
||||
|
||||
|
||||
ExtSysMonAggregator::ExtSysMonAggregator(QObject *_parent, const QHash<QString, QString> &_config)
|
||||
: QObject(_parent)
|
||||
ExtSysMonAggregator::ExtSysMonAggregator(const QString &_id, const QString &_name, KSysGuard::SensorPlugin *_parent,
|
||||
const QHash<QString, QString> &_config)
|
||||
: KSysGuard::SensorContainer(_id, _name, _parent)
|
||||
{
|
||||
qCDebug(LOG_ESM) << __PRETTY_FUNCTION__;
|
||||
|
||||
@ -44,111 +46,73 @@ ExtSysMonAggregator::ExtSysMonAggregator(QObject *_parent, const QHash<QString,
|
||||
}
|
||||
|
||||
|
||||
ExtSysMonAggregator::~ExtSysMonAggregator()
|
||||
{
|
||||
qCDebug(LOG_ESM) << __PRETTY_FUNCTION__;
|
||||
|
||||
m_map.clear();
|
||||
}
|
||||
|
||||
|
||||
QVariant ExtSysMonAggregator::data(const QString &_source) const
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Source" << _source;
|
||||
|
||||
return m_map[_source]->data(_source);
|
||||
}
|
||||
|
||||
|
||||
bool ExtSysMonAggregator::hasSource(const QString &_source) const
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Source" << _source;
|
||||
|
||||
return m_map.contains(_source);
|
||||
}
|
||||
|
||||
|
||||
QVariantMap ExtSysMonAggregator::initialData(const QString &_source) const
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Source" << _source;
|
||||
|
||||
return hasSource(_source) ? m_map[_source]->initialData(_source) : QVariantMap();
|
||||
}
|
||||
|
||||
|
||||
QStringList ExtSysMonAggregator::sources() const
|
||||
{
|
||||
return m_map.keys();
|
||||
}
|
||||
|
||||
|
||||
void ExtSysMonAggregator::init(const QHash<QString, QString> &_config)
|
||||
{
|
||||
qCDebug(LOG_ESM) << "Configuration" << _config;
|
||||
|
||||
// battery
|
||||
AbstractExtSysMonSource *batteryItem = new BatterySource(this, QStringList() << _config["ACPIPATH"]);
|
||||
auto batteryItem = new BatterySource(this, {_config["ACPIPATH"]});
|
||||
for (auto &source : batteryItem->sources())
|
||||
m_map[source] = batteryItem;
|
||||
addObject(new ExtSysMonSensor(this, source, batteryItem));
|
||||
// custom
|
||||
AbstractExtSysMonSource *customItem = new CustomSource(this, QStringList());
|
||||
auto customItem = new CustomSource(this, {});
|
||||
for (auto &source : customItem->sources())
|
||||
m_map[source] = customItem;
|
||||
addObject(new ExtSysMonSensor(this, source, customItem));
|
||||
// desktop
|
||||
AbstractExtSysMonSource *desktopItem = new DesktopSource(this, QStringList());
|
||||
auto desktopItem = new DesktopSource(this, {});
|
||||
for (auto &source : desktopItem->sources())
|
||||
m_map[source] = desktopItem;
|
||||
addObject(new ExtSysMonSensor(this, source, desktopItem));
|
||||
// gpu load
|
||||
AbstractExtSysMonSource *gpuLoadItem = new GPULoadSource(this, QStringList({_config["GPUDEV"]}));
|
||||
auto gpuLoadItem = new GPULoadSource(this, {_config["GPUDEV"]});
|
||||
for (auto &source : gpuLoadItem->sources())
|
||||
m_map[source] = gpuLoadItem;
|
||||
addObject(new ExtSysMonSensor(this, source, gpuLoadItem));
|
||||
// gpu temperature
|
||||
AbstractExtSysMonSource *gpuTempItem = new GPUTemperatureSource(this, QStringList({_config["GPUDEV"]}));
|
||||
auto gpuTempItem = new GPUTemperatureSource(this, {_config["GPUDEV"]});
|
||||
for (auto &source : gpuTempItem->sources())
|
||||
m_map[source] = gpuTempItem;
|
||||
addObject(new ExtSysMonSensor(this, source, gpuTempItem));
|
||||
// hdd temperature
|
||||
AbstractExtSysMonSource *hddTempItem
|
||||
= new HDDTemperatureSource(this, QStringList({_config["HDDDEV"], _config["HDDTEMPCMD"]}));
|
||||
auto hddTempItem
|
||||
= new HDDTemperatureSource(this, {_config["HDDDEV"], _config["HDDTEMPCMD"]});
|
||||
for (auto &source : hddTempItem->sources())
|
||||
m_map[source] = hddTempItem;
|
||||
addObject(new ExtSysMonSensor(this, source, hddTempItem));
|
||||
// network
|
||||
AbstractExtSysMonSource *networkItem = new NetworkSource(this, QStringList());
|
||||
auto networkItem = new NetworkSource(this, QStringList());
|
||||
for (auto &source : networkItem->sources())
|
||||
m_map[source] = networkItem;
|
||||
addObject(new ExtSysMonSensor(this, source, networkItem));
|
||||
// player
|
||||
AbstractExtSysMonSource *playerItem
|
||||
= new PlayerSource(this, QStringList({_config["PLAYER"], _config["MPDADDRESS"], _config["MPDPORT"],
|
||||
_config["MPRIS"], _config["PLAYERSYMBOLS"]}));
|
||||
auto playerItem
|
||||
= new PlayerSource(this, {_config["PLAYER"], _config["MPDADDRESS"], _config["MPDPORT"],
|
||||
_config["MPRIS"], _config["PLAYERSYMBOLS"]});
|
||||
for (auto &source : playerItem->sources())
|
||||
m_map[source] = playerItem;
|
||||
addObject(new ExtSysMonSensor(this, source, playerItem));
|
||||
// processes
|
||||
AbstractExtSysMonSource *processesItem = new ProcessesSource(this, QStringList());
|
||||
auto processesItem = new ProcessesSource(this, {});
|
||||
for (auto &source : processesItem->sources())
|
||||
m_map[source] = processesItem;
|
||||
addObject(new ExtSysMonSensor(this, source, processesItem));
|
||||
// network request
|
||||
AbstractExtSysMonSource *requestItem = new RequestSource(this, QStringList());
|
||||
auto requestItem = new RequestSource(this, {});
|
||||
for (auto &source : requestItem->sources())
|
||||
m_map[source] = requestItem;
|
||||
addObject(new ExtSysMonSensor(this, source, requestItem));
|
||||
// quotes
|
||||
AbstractExtSysMonSource *quotesItem = new QuotesSource(this, QStringList());
|
||||
auto quotesItem = new QuotesSource(this, {});
|
||||
for (auto &source : quotesItem->sources())
|
||||
m_map[source] = quotesItem;
|
||||
addObject(new ExtSysMonSensor(this, source, quotesItem));
|
||||
// system
|
||||
AbstractExtSysMonSource *systemItem = new SystemInfoSource(this, QStringList());
|
||||
auto systemItem = new SystemInfoSource(this, {});
|
||||
for (auto &source : systemItem->sources())
|
||||
m_map[source] = systemItem;
|
||||
addObject(new ExtSysMonSensor(this, source, systemItem));
|
||||
// upgrade
|
||||
AbstractExtSysMonSource *upgradeItem = new UpgradeSource(this, QStringList());
|
||||
auto upgradeItem = new UpgradeSource(this, {});
|
||||
for (auto &source : upgradeItem->sources())
|
||||
m_map[source] = upgradeItem;
|
||||
addObject(new ExtSysMonSensor(this, source, upgradeItem));
|
||||
// weather
|
||||
AbstractExtSysMonSource *weatherItem = new WeatherSource(this, QStringList());
|
||||
auto weatherItem = new WeatherSource(this, {});
|
||||
for (auto &source : weatherItem->sources())
|
||||
m_map[source] = weatherItem;
|
||||
addObject(new ExtSysMonSensor(this, source, weatherItem));
|
||||
#ifdef BUILD_LOAD
|
||||
// additional load source
|
||||
AbstractExtSysMonSource *loadItem = new LoadSource(this, QStringList());
|
||||
auto loadItem = new LoadSource(this, QStringList());
|
||||
for (auto &source : loadItem->sources())
|
||||
m_map[source] = loadItem;
|
||||
addObject(new ExtSysMonSensor(this, source, loadItem));
|
||||
#endif /* BUILD_LOAD */
|
||||
}
|
||||
|
@ -19,25 +19,20 @@
|
||||
#define EXTSYSMONAGGREGATOR_H
|
||||
|
||||
#include <QObject>
|
||||
#include <ksysguard/systemstats/SensorContainer.h>
|
||||
|
||||
#include "abstractextsysmonsource.h"
|
||||
|
||||
|
||||
class ExtSysMonAggregator : public QObject
|
||||
class ExtSysMonAggregator : public KSysGuard::SensorContainer
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ExtSysMonAggregator(QObject *_parent, const QHash<QString, QString> &_config);
|
||||
~ExtSysMonAggregator() override;
|
||||
[[nodiscard]] QVariant data(const QString &_source) const;
|
||||
[[nodiscard]] bool hasSource(const QString &_source) const;
|
||||
[[nodiscard]] QVariantMap initialData(const QString &_source) const;
|
||||
[[nodiscard]] QStringList sources() const;
|
||||
explicit ExtSysMonAggregator(const QString &_id, const QString &_name, KSysGuard::SensorPlugin *_parent,
|
||||
const QHash<QString, QString> &_config);
|
||||
|
||||
private:
|
||||
void init(const QHash<QString, QString> &_config);
|
||||
QHash<QString, AbstractExtSysMonSource *> m_map;
|
||||
};
|
||||
|
||||
|
||||
|
3
sources/extsysmon/metadata.json
Normal file
3
sources/extsysmon/metadata.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"providerName": "extsysmon"
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=Extended SystemMonitor
|
||||
Comment=Adds some additional functions to System DataEngine
|
||||
ServiceTypes=Plasma/DataEngine
|
||||
Type=Service
|
||||
Icon=utilities-system-monitor
|
||||
|
||||
X-KDE-Library=plasma_dataengine_extsysmon
|
||||
|
||||
X-KDE-PluginInfo-Author=Evgeniy Alekseev aka arcanis
|
||||
X-KDE-PluginInfo-Email=esalexeev@gmail.com
|
||||
X-KDE-PluginInfo-Name=extsysmon
|
||||
X-KDE-PluginInfo-Version=@PROJECT_VERSION@
|
||||
X-KDE-PluginInfo-Category=System Information
|
||||
X-KDE-PluginInfo-License=GPL3
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"KPlugin": {
|
||||
"Authors": [
|
||||
{
|
||||
"Email": "esalexeev@gmail.com",
|
||||
"Name": "Evgeniy Alekseev aka arcanis"
|
||||
}
|
||||
],
|
||||
"Category": "System Information",
|
||||
"Description": "Adds some additional functions to System DataEngine",
|
||||
"Icon": "utilities-system-monitor",
|
||||
"Id": "extsysmon",
|
||||
"License": "GPL3",
|
||||
"Name": "Extended SystemMonitor",
|
||||
"ServiceTypes": [
|
||||
"Plasma/DataEngine"
|
||||
],
|
||||
"Version": "@PROJECT_VERSION@"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user