mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-05-04 12:23:49 +00:00
refactor: simplify sources processing
This commit is contained in:
parent
0bcceefd47
commit
d1fc717a6b
@ -20,13 +20,9 @@
|
||||
#include <QObject>
|
||||
#include <QRegularExpression>
|
||||
#include <QVariant>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
|
||||
namespace KSysGuard
|
||||
{
|
||||
class SensorInfo;
|
||||
}
|
||||
|
||||
class AbstractExtSysMonSource : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -36,15 +32,33 @@ public:
|
||||
: QObject(_parent){};
|
||||
~AbstractExtSysMonSource() override = default;
|
||||
virtual QVariant data(const QString &_source) = 0;
|
||||
[[nodiscard]] virtual KSysGuard::SensorInfo *initialData(const QString &_source) const = 0;
|
||||
[[nodiscard]] virtual QHash<QString, KSysGuard::SensorInfo *> initialData() const = 0;
|
||||
virtual void run() = 0;
|
||||
[[nodiscard]] virtual QStringList sources() const = 0;
|
||||
|
||||
// used by extensions
|
||||
static int index(const QString &_source)
|
||||
{
|
||||
QRegularExpression rx("\\d+");
|
||||
return rx.match(_source).captured().toInt();
|
||||
}
|
||||
static KSysGuard::SensorInfo *makeSensorInfo(const QString &_name,
|
||||
const QVariant::Type type,
|
||||
const KSysGuard::Unit unit = KSysGuard::UnitNone,
|
||||
const double min = 0,
|
||||
const double max = 9)
|
||||
{
|
||||
auto info = new KSysGuard::SensorInfo();
|
||||
info->name = _name;
|
||||
info->variantType = type;
|
||||
|
||||
info->unit = unit;
|
||||
|
||||
info->min = min;
|
||||
info->max = max;
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
signals:
|
||||
void dataReceived(const QVariantHash &);
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "batterysource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include <QDir>
|
||||
|
||||
#include <cmath>
|
||||
@ -39,12 +35,6 @@ BatterySource::BatterySource(QObject *_parent, const QStringList &_args)
|
||||
}
|
||||
|
||||
|
||||
BatterySource::~BatterySource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QStringList BatterySource::getSources()
|
||||
{
|
||||
QStringList sources;
|
||||
@ -62,7 +52,7 @@ QStringList BatterySource::getSources()
|
||||
= directory.entryList(QStringList({"BAT*"}), QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name).count();
|
||||
qCInfo(LOG_ESS) << "Init batteries count as" << m_batteriesCount;
|
||||
|
||||
for (int i = 0; i < m_batteriesCount; i++) {
|
||||
for (auto i = 0; i < m_batteriesCount; i++) {
|
||||
sources.append(QString("bat%1").arg(i));
|
||||
sources.append(QString("batleft%1").arg(i));
|
||||
sources.append(QString("batnow%1").arg(i));
|
||||
@ -86,78 +76,28 @@ QVariant BatterySource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *BatterySource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> BatterySource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "ac") {
|
||||
data->name = "Is AC online or not";
|
||||
data->variantType = QVariant::Bool;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "bat") {
|
||||
data->min = 0;
|
||||
data->max = 100;
|
||||
data->name = "Average battery usage";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitPercent;
|
||||
} else if (_source == "batleft") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Battery discharge time";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitSecond;
|
||||
} else if (_source == "batnow") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Current battery capacity";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "batrate") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Average battery discharge rate";
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitRate;
|
||||
} else if (_source == "battotal") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Full battery capacity";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("batleft")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = QString("Battery %1 discharge time").arg(index(_source));
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitSecond;
|
||||
} else if (_source.startsWith("batnow")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = QString("Battery %1 capacity").arg(index(_source));
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("battotal")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = QString("Battery %1 full capacity").arg(index(_source));
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("batrate")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = QString("Battery %1 discharge rate").arg(index(_source));
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitRate;
|
||||
} else if (_source.startsWith("bat")) {
|
||||
data->min = 0;
|
||||
data->max = 100;
|
||||
data->name = QString("Battery %1 usage").arg(index(_source));
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitPercent;
|
||||
// fixed fields
|
||||
result.insert("ac", makeSensorInfo("Is AC online or not", QVariant::Bool));
|
||||
result.insert("bat", makeSensorInfo("Average battery usage", QVariant::Int, KSysGuard::UnitPercent, 0, 100));
|
||||
result.insert("batleft", makeSensorInfo("Battery discharge time", QVariant::Int, KSysGuard::UnitSecond));
|
||||
result.insert("batnow", makeSensorInfo("Current battery capacity", QVariant::Int));
|
||||
result.insert("batrate", makeSensorInfo("Average battery discharge rate", QVariant::Double, KSysGuard::UnitRate));
|
||||
result.insert("battotal", makeSensorInfo("Full battery capacity", QVariant::Int));
|
||||
|
||||
// generators
|
||||
for (auto i = 0; i < m_batteriesCount; i++) {
|
||||
result.insert(QString("bat%1").arg(i), makeSensorInfo(QString("Battery %1 usage").arg(i), QVariant::Int, KSysGuard::UnitPercent, 0, 100));
|
||||
result.insert(QString("batleft%1").arg(i), makeSensorInfo(QString("Battery %1 discharge time").arg(i), QVariant::Int, KSysGuard::UnitSecond));
|
||||
result.insert(QString("batnow%1").arg(i), makeSensorInfo(QString("Battery %1 capacity").arg(i), QVariant::Int));
|
||||
result.insert(QString("batrate%1").arg(i), makeSensorInfo(QString("Battery %1 discharge rate").arg(i), QVariant::Double, KSysGuard::UnitRate));
|
||||
result.insert(QString("battotal%1").arg(i), makeSensorInfo(QString("Battery %1 full capacity").arg(i), QVariant::Int));
|
||||
}
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,10 +31,10 @@ public:
|
||||
const int TREND_LIMIT = 20;
|
||||
|
||||
explicit BatterySource(QObject *_parent, const QStringList &_args);
|
||||
~BatterySource() override;
|
||||
~BatterySource() override = default;
|
||||
QStringList getSources();
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override;
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -17,9 +17,6 @@
|
||||
|
||||
#include "customsource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include "awdebug.h"
|
||||
#include "extscript.h"
|
||||
|
||||
@ -30,18 +27,12 @@ CustomSource::CustomSource(QObject *_parent, const QStringList &_args)
|
||||
Q_ASSERT(_args.count() == 0);
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
|
||||
m_extScripts = new ExtItemAggregator<ExtScript>(nullptr, "scripts");
|
||||
m_extScripts = new ExtItemAggregator<ExtScript>(this, "scripts");
|
||||
m_extScripts->initSockets();
|
||||
m_sources = getSources();
|
||||
}
|
||||
|
||||
|
||||
CustomSource::~CustomSource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QVariant CustomSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
@ -51,16 +42,14 @@ QVariant CustomSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *CustomSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> CustomSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
data->name = QString("Custom command '%1' output").arg(m_extScripts->itemByTagNumber(index(_source))->uniq());
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
for (auto &item : m_extScripts->activeItems())
|
||||
result.insert(item->tag("custom"), makeSensorInfo(QString("Custom command '%1' output").arg(item->uniq()), QVariant::String));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,9 +31,9 @@ class CustomSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit CustomSource(QObject *_parent, const QStringList &_args);
|
||||
~CustomSource() override;
|
||||
~CustomSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override{};
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -18,8 +18,6 @@
|
||||
#include "desktopsource.h"
|
||||
|
||||
#include <KWindowSystem/KWindowSystem>
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
#include <taskmanager/virtualdesktopinfo.h>
|
||||
|
||||
#include "awdebug.h"
|
||||
@ -65,32 +63,16 @@ QVariant DesktopSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *DesktopSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> DesktopSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "name") {
|
||||
data->name = "Current desktop name";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "number") {
|
||||
data->min = 0;
|
||||
data->name = "Current desktop number";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "names") {
|
||||
data->name = "All desktops by name";
|
||||
data->variantType = QVariant::StringList;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "count") {
|
||||
data->min = 0;
|
||||
data->name = "Desktops count";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
}
|
||||
result.insert("name", makeSensorInfo("Current desktop name", QVariant::String));
|
||||
result.insert("number", makeSensorInfo("Current desktop number", QVariant::Int));
|
||||
result.insert("names", makeSensorInfo("All desktops by name", QVariant::StringList));
|
||||
result.insert("count", makeSensorInfo("Desktops count", QVariant::Int));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
explicit DesktopSource(QObject *_parent, const QStringList &_args);
|
||||
~DesktopSource() override;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override{};
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -74,8 +74,10 @@ void ExtSysMonSensor::update()
|
||||
|
||||
void ExtSysMonSensor::loadProperties()
|
||||
{
|
||||
for (auto &source : m_source->sources()) {
|
||||
auto info = m_source->initialData(source);
|
||||
auto sensors = m_source->initialData();
|
||||
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);
|
||||
|
||||
property->setUnit(info->unit);
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "loadsource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include <QRandomGenerator>
|
||||
|
||||
#include "awdebug.h"
|
||||
@ -34,12 +30,6 @@ LoadSource::LoadSource(QObject *_parent, const QStringList &_args)
|
||||
}
|
||||
|
||||
|
||||
LoadSource::~LoadSource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QVariant LoadSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
@ -48,27 +38,21 @@ QVariant LoadSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *LoadSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> LoadSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source.startsWith("load")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Simple sources for load tests";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
}
|
||||
for (auto &source : sources())
|
||||
result.insert(source, makeSensorInfo("Simple sources for load tests", QVariant::Int));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
QStringList LoadSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
for (int i = 0; i < 1000; i++)
|
||||
for (auto i = 0; i < 1000; i++)
|
||||
sources.append(QString("load%1").arg(i));
|
||||
|
||||
return sources;
|
||||
|
@ -28,9 +28,9 @@ class LoadSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit LoadSource(QObject *_parent, const QStringList &_args);
|
||||
~LoadSource() override;
|
||||
~LoadSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override{};
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
};
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "networksource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include <QNetworkInterface>
|
||||
#include <QProcess>
|
||||
|
||||
@ -60,22 +56,14 @@ QVariant NetworkSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *NetworkSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> NetworkSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "device") {
|
||||
data->name = "Current network device name";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "ssid") {
|
||||
data->name = "Current SSID name";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
}
|
||||
result.insert("device", makeSensorInfo("Current network device name", QVariant::String));
|
||||
result.insert("ssid", makeSensorInfo("Current SSID name", QVariant::String));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
explicit NetworkSource(QObject *_parent, const QStringList &_args);
|
||||
~NetworkSource() override;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override;
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "playersource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include <QDBusArgument>
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusConnectionInterface>
|
||||
@ -77,11 +73,10 @@ QString PlayerSource::getAutoMpris()
|
||||
}
|
||||
QStringList arguments = listServices.arguments().first().toStringList();
|
||||
|
||||
for (auto &arg : arguments) {
|
||||
if (!arg.startsWith("org.mpris.MediaPlayer2."))
|
||||
for (auto &service : arguments) {
|
||||
if (!service.startsWith("org.mpris.MediaPlayer2."))
|
||||
continue;
|
||||
qCInfo(LOG_ESS) << "Service found" << arg;
|
||||
QString service = arg;
|
||||
qCInfo(LOG_ESS) << "Service found" << service;
|
||||
service.remove("org.mpris.MediaPlayer2.");
|
||||
return service;
|
||||
}
|
||||
@ -90,62 +85,23 @@ QString PlayerSource::getAutoMpris()
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *PlayerSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> PlayerSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "album") {
|
||||
data->name = "Current song album";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "salbum") {
|
||||
data->name = QString("Current song album (%1 symbols)").arg(m_symbols);
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "dalbum") {
|
||||
data->name = QString("Current song album (%1 symbols, dynamic)").arg(m_symbols);
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "artist") {
|
||||
data->name = "Current song artist";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "sartist") {
|
||||
data->name = QString("Current song artist (%1 symbols)").arg(m_symbols);
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "dartist") {
|
||||
data->name = QString("Current song artist (%1 symbols, dynamic)").arg(m_symbols);
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "duration") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Current song duration";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitSecond;
|
||||
} else if (_source == "progress") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Current song progress";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitSecond;
|
||||
} else if (_source == "title") {
|
||||
data->name = "Current song title";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "stitle") {
|
||||
data->name = QString("Current song title (%1 symbols)").arg(m_symbols);
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "dtitle") {
|
||||
data->name = QString("Current song title (%1 symbols, dynamic)").arg(m_symbols);
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
}
|
||||
result.insert("album", makeSensorInfo("Current song album", QVariant::String));
|
||||
result.insert("salbum", makeSensorInfo(QString("Current song album (%1 symbols)").arg(m_symbols), QVariant::String));
|
||||
result.insert("dalbum", makeSensorInfo(QString("Current song album (%1 symbols, dynamic)").arg(m_symbols), QVariant::String));
|
||||
result.insert("artist", makeSensorInfo("Current song artist", QVariant::String));
|
||||
result.insert("sartist", makeSensorInfo(QString("Current song artist (%1 symbols)").arg(m_symbols), QVariant::String));
|
||||
result.insert("dartist", makeSensorInfo(QString("Current song artist (%1 symbols, dynamic)").arg(m_symbols), QVariant::String));
|
||||
result.insert("duration", makeSensorInfo("Current song duration", QVariant::Int, KSysGuard::UnitSecond));
|
||||
result.insert("progress", makeSensorInfo("Current song progress", QVariant::Int, KSysGuard::UnitSecond));
|
||||
result.insert("title", makeSensorInfo("Current song title", QVariant::String));
|
||||
result.insert("stitle", makeSensorInfo(QString("Current song title (%1 symbols)").arg(m_symbols), QVariant::String));
|
||||
result.insert("dtitle", makeSensorInfo(QString("Current song title (%1 symbols, dynamic)").arg(m_symbols), QVariant::String));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -199,7 +155,7 @@ QString PlayerSource::buildString(const QString &_current, const QString &_value
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Current value" << _current << "received" << _value << "will be stripped after" << _s;
|
||||
|
||||
int index = _value.indexOf(_current);
|
||||
auto index = _value.indexOf(_current);
|
||||
if ((_current.isEmpty()) || ((index + _s + 1) > _value.length()))
|
||||
return QString("%1").arg(_value.left(_s), -_s, QLatin1Char(' '));
|
||||
else
|
||||
@ -230,7 +186,7 @@ void PlayerSource::mpdSocketConnected()
|
||||
|
||||
void PlayerSource::mpdSocketReadyRead()
|
||||
{
|
||||
QString qoutput = QString::fromUtf8(m_mpdSocket.readAll()).trimmed();
|
||||
auto qoutput = QString::fromUtf8(m_mpdSocket.readAll()).trimmed();
|
||||
qCInfo(LOG_ESS) << "Output" << qoutput;
|
||||
|
||||
// parse
|
||||
@ -307,7 +263,7 @@ QVariantHash PlayerSource::getPlayerMprisInfo(const QString &_mpris)
|
||||
// /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get
|
||||
// string:'org.mpris.MediaPlayer2.Player' string:'Metadata'
|
||||
auto args = QVariantList({"org.mpris.MediaPlayer2.Player", "Metadata"});
|
||||
QDBusMessage request
|
||||
auto request
|
||||
= QDBusMessage::createMethodCall(QString("org.mpris.MediaPlayer2.%1").arg(_mpris), "/org/mpris/MediaPlayer2",
|
||||
"org.freedesktop.DBus.Properties", "Get");
|
||||
request.setArguments(args);
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
~PlayerSource() override;
|
||||
QVariant data(const QString &_source) override;
|
||||
static QString getAutoMpris();
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override;
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
// additional method to build dynamic tags
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "processessource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include <QDir>
|
||||
|
||||
#include "awdebug.h"
|
||||
@ -34,12 +30,6 @@ ProcessesSource::ProcessesSource(QObject *_parent, const QStringList &_args)
|
||||
}
|
||||
|
||||
|
||||
ProcessesSource::~ProcessesSource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QVariant ProcessesSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
@ -51,39 +41,24 @@ QVariant ProcessesSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *ProcessesSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> ProcessesSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "running") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Count of running processes";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "list") {
|
||||
data->name = "All running processes list";
|
||||
data->variantType = QVariant::StringList;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "count") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Total count of processes";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
}
|
||||
result.insert("running", makeSensorInfo("Count of running processes", QVariant::Int));
|
||||
result.insert("list", makeSensorInfo("All running processes list", QVariant::StringList));
|
||||
result.insert("count", makeSensorInfo("Total count of processes", QVariant::Int));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
void ProcessesSource::run()
|
||||
{
|
||||
QStringList allDirectories = QDir("/proc").entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
|
||||
QStringList directories = allDirectories.filter(QRegularExpression("(\\d+)"));
|
||||
QStringList running;
|
||||
auto allDirectories = QDir("/proc").entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
|
||||
auto directories = allDirectories.filter(QRegularExpression("(\\d+)"));
|
||||
|
||||
QStringList running;
|
||||
for (auto &dir : directories) {
|
||||
QFile statusFile(QString("/proc/%1/status").arg(dir));
|
||||
if (!statusFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
@ -92,7 +67,7 @@ void ProcessesSource::run()
|
||||
if (!cmdFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
continue;
|
||||
|
||||
QString output = statusFile.readAll();
|
||||
auto output = statusFile.readAll();
|
||||
if (output.contains("running"))
|
||||
running.append(cmdFile.readAll());
|
||||
statusFile.close();
|
||||
|
@ -28,9 +28,9 @@ class ProcessesSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit ProcessesSource(QObject *_parent, const QStringList &_args);
|
||||
~ProcessesSource() override;
|
||||
~ProcessesSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override;
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "quotessource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include "awdebug.h"
|
||||
#include "extquotes.h"
|
||||
|
||||
@ -37,12 +33,6 @@ QuotesSource::QuotesSource(QObject *_parent, const QStringList &_args)
|
||||
}
|
||||
|
||||
|
||||
QuotesSource::~QuotesSource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QVariant QuotesSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
@ -58,51 +48,20 @@ QVariant QuotesSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *QuotesSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> QuotesSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
int ind = index(_source);
|
||||
auto data = new KSysGuard::SensorInfo;
|
||||
if (_source.startsWith("pricechg")) {
|
||||
data->min = 0.0;
|
||||
data->max = 0.0;
|
||||
data->name = QString("Absolute price changes for '%1'").arg(m_extQuotes->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("price")) {
|
||||
data->min = 0.0;
|
||||
data->max = 0.0;
|
||||
data->name = QString("Price for '%1'").arg(m_extQuotes->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("percpricechg")) {
|
||||
data->min = -100.0;
|
||||
data->max = 100.0;
|
||||
data->name = QString("Price changes for '%1'").arg(m_extQuotes->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitPercent;
|
||||
} else if (_source.startsWith("volumechg")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = QString("Absolute volume changes for '%1'").arg(m_extQuotes->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("volume")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = QString("Volume for '%1'").arg(m_extQuotes->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("percvolumechg")) {
|
||||
data->min = -100.0;
|
||||
data->max = 100.0;
|
||||
data->name = QString("Volume changes for '%1'").arg(m_extQuotes->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitPercent;
|
||||
for (auto &item : m_extQuotes->activeItems()) {
|
||||
result.insert(item->tag("pricechg"), makeSensorInfo(QString("Absolute price changes for '%1'").arg(item->uniq()), QVariant::Double));
|
||||
result.insert(item->tag("price"), makeSensorInfo(QString("Price for '%1'").arg(item->uniq()), QVariant::Double));
|
||||
result.insert(item->tag("percpricechg"), makeSensorInfo(QString("Price changes for '%1'").arg(item->uniq()), QVariant::Double, KSysGuard::UnitPercent, 0, 100));
|
||||
result.insert(item->tag("volumechg"), makeSensorInfo(QString("Absolute volume changes for '%1'").arg(item->uniq()), QVariant::Double));
|
||||
result.insert(item->tag("volume"), makeSensorInfo(QString("Volume for '%1'").arg(item->uniq()), QVariant::Double));
|
||||
result.insert(item->tag("percvolumechg"), makeSensorInfo(QString("Volume changes for '%1'").arg(item->uniq()), QVariant::Double, KSysGuard::UnitPercent, 0, 100));
|
||||
}
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,9 +31,9 @@ class QuotesSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit QuotesSource(QObject *_parent, const QStringList &_args);
|
||||
~QuotesSource() override;
|
||||
~QuotesSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override{};
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "requestsource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include "awdebug.h"
|
||||
#include "extnetworkrequest.h"
|
||||
|
||||
@ -37,12 +33,6 @@ RequestSource::RequestSource(QObject *_parent, const QStringList &_args)
|
||||
}
|
||||
|
||||
|
||||
RequestSource::~RequestSource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QVariant RequestSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
@ -58,19 +48,14 @@ QVariant RequestSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *RequestSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> RequestSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
int ind = index(_source);
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source.startsWith("response")) {
|
||||
data->name = QString("Network response for %1").arg(m_extNetRequest->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
}
|
||||
for (auto &item : m_extNetRequest->activeItems())
|
||||
result.insert(item->tag("response"), makeSensorInfo(QString("Network response for %1").arg(item->uniq()), QVariant::String));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,9 +31,9 @@ class RequestSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit RequestSource(QObject *_parent, const QStringList &_args);
|
||||
~RequestSource() override;
|
||||
~RequestSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override{};
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -38,12 +38,6 @@ SystemInfoSource::SystemInfoSource(QObject *_parent, const QStringList &_args)
|
||||
}
|
||||
|
||||
|
||||
SystemInfoSource::~SystemInfoSource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QVariant SystemInfoSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
@ -54,26 +48,14 @@ QVariant SystemInfoSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *SystemInfoSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> SystemInfoSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "brightness") {
|
||||
data->min = 0.0;
|
||||
data->max = 100.0;
|
||||
data->name = "Screen brightness";
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitPercent;
|
||||
} else if (_source == "volume") {
|
||||
data->min = 0.0;
|
||||
data->max = 100.0;
|
||||
data->name = "Master volume";
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitPercent;
|
||||
}
|
||||
result.insert("brightness", makeSensorInfo("Screen brightness", QVariant::Double, KSysGuard::UnitPercent, 0, 100));
|
||||
result.insert("volume", makeSensorInfo("Master volume", QVariant::Double, KSysGuard::UnitNone));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -28,9 +28,9 @@ class SystemInfoSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit SystemInfoSource(QObject *_parent, const QStringList &_args);
|
||||
~SystemInfoSource() override;
|
||||
~SystemInfoSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override;
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -17,9 +17,6 @@
|
||||
|
||||
#include "timesource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include "awdebug.h"
|
||||
|
||||
|
||||
@ -43,16 +40,13 @@ QVariant TimeSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *TimeSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> TimeSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
data->name = "Current time";
|
||||
data->variantType = QVariant::LongLong;
|
||||
data->unit = KSysGuard::UnitSecond;
|
||||
result.insert("now", makeSensorInfo("Current time", QVariant::LongLong, KSysGuard::UnitSecond));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -28,8 +28,9 @@ class TimeSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit TimeSource(QObject *_parent, const QStringList &_args);
|
||||
~TimeSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override{};
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
};
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "upgradesource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include "awdebug.h"
|
||||
#include "extupgrade.h"
|
||||
|
||||
@ -37,12 +33,6 @@ UpgradeSource::UpgradeSource(QObject *_parent, const QStringList &_args)
|
||||
}
|
||||
|
||||
|
||||
UpgradeSource::~UpgradeSource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QVariant UpgradeSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
@ -52,16 +42,14 @@ QVariant UpgradeSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *UpgradeSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> UpgradeSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
data->name = QString("Package manager '%1' metadata").arg(m_extUpgrade->itemByTagNumber(index(_source))->uniq());
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
for (auto &item : m_extUpgrade->activeItems())
|
||||
result.insert(item->tag("pkgcount"), makeSensorInfo(QString("Package manager '%1' metadata").arg(item->uniq()), QVariant::Int));
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,9 +31,9 @@ class UpgradeSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit UpgradeSource(QObject *_parent, const QStringList &_args);
|
||||
~UpgradeSource() override;
|
||||
~UpgradeSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override{};
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
@ -15,12 +15,8 @@
|
||||
* along with awesome-widgets. If not, see http://www.gnu.org/licenses/ *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "weathersource.h"
|
||||
|
||||
#include <ksysguard/formatter/Unit.h>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
#include "awdebug.h"
|
||||
#include "extweather.h"
|
||||
|
||||
@ -37,12 +33,6 @@ WeatherSource::WeatherSource(QObject *_parent, const QStringList &_args)
|
||||
}
|
||||
|
||||
|
||||
WeatherSource::~WeatherSource()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
}
|
||||
|
||||
|
||||
QVariant WeatherSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
@ -56,47 +46,20 @@ QVariant WeatherSource::data(const QString &_source)
|
||||
}
|
||||
|
||||
|
||||
KSysGuard::SensorInfo *WeatherSource::initialData(const QString &_source) const
|
||||
QHash<QString, KSysGuard::SensorInfo *> WeatherSource::initialData() const
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
auto result = QHash<QString, KSysGuard::SensorInfo *>();
|
||||
|
||||
int ind = index(_source);
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source.startsWith("weatherId")) {
|
||||
data->min = 0;
|
||||
data->max = 1000;
|
||||
data->name = QString("Numeric weather ID for '%1'").arg(m_extWeather->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("weather")) {
|
||||
data->name = QString("ID string map for '%1'").arg(m_extWeather->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("humidity")) {
|
||||
data->min = 0;
|
||||
data->max = 100;
|
||||
data->name = QString("Humidity for '%1'").arg(m_extWeather->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitPercent;
|
||||
} else if (_source.startsWith("pressure")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = QString("Atmospheric pressure for '%1'").arg(m_extWeather->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source.startsWith("temperature")) {
|
||||
data->min = 0.0;
|
||||
data->max = 0.0;
|
||||
data->name = QString("Temperature for '%1'").arg(m_extWeather->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::Double;
|
||||
data->unit = KSysGuard::UnitCelsius;
|
||||
} else if (_source.startsWith("timestamp")) {
|
||||
data->name = QString("Timestamp for '%1'").arg(m_extWeather->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::DateTime;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
for (auto &item : m_extWeather->activeItems()) {
|
||||
result.insert(item->tag("weatherId"), makeSensorInfo(QString("Numeric weather ID for '%1'").arg(item->uniq()), QVariant::Int, KSysGuard::UnitNone, 0, 1000));
|
||||
result.insert(item->tag("weather"), makeSensorInfo(QString("ID string map for '%1'").arg(item->uniq()), QVariant::String));
|
||||
result.insert(item->tag("humidity"), makeSensorInfo(QString("Humidity for '%1'").arg(item->uniq()), QVariant::Int, KSysGuard::UnitPercent, 0, 100));
|
||||
result.insert(item->tag("pressure"), makeSensorInfo(QString("Atmospheric pressure for '%1'").arg(item->uniq()), QVariant::Int));
|
||||
result.insert(item->tag("temperature"), makeSensorInfo(QString("Temperature for '%1'").arg(item->uniq()), QVariant::Double, KSysGuard::UnitCelsius));
|
||||
result.insert(item->tag("timestamp"), makeSensorInfo(QString("Timestamp for '%1'").arg(item->uniq()), QVariant::DateTime, KSysGuard::UnitNone));
|
||||
}
|
||||
|
||||
return data;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,9 +31,9 @@ class WeatherSource : public AbstractExtSysMonSource
|
||||
|
||||
public:
|
||||
explicit WeatherSource(QObject *_parent, const QStringList &_args);
|
||||
~WeatherSource() override;
|
||||
~WeatherSource() override = default;
|
||||
QVariant data(const QString &_source) override;
|
||||
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
|
||||
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> initialData() const override;
|
||||
void run() override{};
|
||||
[[nodiscard]] QStringList sources() const override;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user