mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-07-15 06:45:48 +00:00
do not derive from qwidget in aggregates
This commit is contained in:
@ -48,12 +48,12 @@ BatterySource::~BatterySource()
|
||||
QStringList BatterySource::getSources()
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append("battery/ac");
|
||||
sources.append("battery/bat");
|
||||
sources.append("battery/batleft");
|
||||
sources.append("battery/batnow");
|
||||
sources.append("battery/batrate");
|
||||
sources.append("battery/battotal");
|
||||
sources.append("ac");
|
||||
sources.append("bat");
|
||||
sources.append("batleft");
|
||||
sources.append("batnow");
|
||||
sources.append("batrate");
|
||||
sources.append("battotal");
|
||||
|
||||
auto directory = QDir(m_acpiPath);
|
||||
|
||||
@ -63,11 +63,11 @@ QStringList BatterySource::getSources()
|
||||
qCInfo(LOG_ESS) << "Init batteries count as" << m_batteriesCount;
|
||||
|
||||
for (int i = 0; i < m_batteriesCount; i++) {
|
||||
sources.append(QString("battery/bat%1").arg(i));
|
||||
sources.append(QString("battery/batleft%1").arg(i));
|
||||
sources.append(QString("battery/batnow%1").arg(i));
|
||||
sources.append(QString("battery/batrate%1").arg(i));
|
||||
sources.append(QString("battery/battotal%1").arg(i));
|
||||
sources.append(QString("bat%1").arg(i));
|
||||
sources.append(QString("batleft%1").arg(i));
|
||||
sources.append(QString("batnow%1").arg(i));
|
||||
sources.append(QString("batrate%1").arg(i));
|
||||
sources.append(QString("battotal%1").arg(i));
|
||||
}
|
||||
}
|
||||
|
||||
@ -82,8 +82,7 @@ QVariant BatterySource::data(const QString &_source)
|
||||
|
||||
if (!m_values.contains(_source))
|
||||
run();
|
||||
QVariant value = m_values.take(_source);
|
||||
return value;
|
||||
return m_values.take(_source);
|
||||
}
|
||||
|
||||
|
||||
@ -92,65 +91,65 @@ KSysGuard::SensorInfo *BatterySource::initialData(const QString &_source) const
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "battery/ac") {
|
||||
if (_source == "ac") {
|
||||
data->name = "Is AC online or not";
|
||||
data->variantType = QVariant::Bool;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "battery/bat") {
|
||||
} 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 == "battery/batleft") {
|
||||
} 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 == "battery/batnow") {
|
||||
} 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 == "battery/batrate") {
|
||||
} 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 == "battery/battotal") {
|
||||
} 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("battery/batleft")) {
|
||||
} 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("battery/batnow")) {
|
||||
} 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("battery/battotal")) {
|
||||
} 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("battery/batrate")) {
|
||||
} 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("battery/bat")) {
|
||||
} else if (_source.startsWith("bat")) {
|
||||
data->min = 0;
|
||||
data->max = 100;
|
||||
data->name = QString("Battery %1 usage").arg(index(_source));
|
||||
@ -167,7 +166,7 @@ void BatterySource::run()
|
||||
// adaptor
|
||||
QFile acFile(QString("%1/AC/online").arg(m_acpiPath));
|
||||
if (acFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
m_values["battery/ac"] = (QString(acFile.readLine()).trimmed().toInt() == 1);
|
||||
m_values["ac"] = (QString(acFile.readLine()).trimmed().toInt() == 1);
|
||||
acFile.close();
|
||||
|
||||
// batteries
|
||||
@ -178,28 +177,27 @@ void BatterySource::run()
|
||||
if (currentLevelFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
auto value = QString(currentLevelFile.readLine()).toInt();
|
||||
m_trend[i + 1].append(value);
|
||||
m_values[QString("battery/batnow%1").arg(i)] = value;
|
||||
m_values[QString("batnow%1").arg(i)] = value;
|
||||
}
|
||||
currentLevelFile.close();
|
||||
// total
|
||||
QFile fullLevelFile(QString("%1/BAT%2/energy_full").arg(m_acpiPath).arg(i));
|
||||
if (fullLevelFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
m_values[QString("battery/battotal%1").arg(i)] = QString(fullLevelFile.readLine()).toInt();
|
||||
m_values[QString("battotal%1").arg(i)] = QString(fullLevelFile.readLine()).toInt();
|
||||
fullLevelFile.close();
|
||||
|
||||
m_values[QString("battery/bat%1").arg(i)]
|
||||
= static_cast<int>(100 * m_values[QString("battery/batnow%1").arg(i)].toFloat()
|
||||
/ m_values[QString("battery/battotal%1").arg(i)].toFloat());
|
||||
m_values[QString("bat%1").arg(i)] = static_cast<int>(100 * m_values[QString("batnow%1").arg(i)].toFloat()
|
||||
/ m_values[QString("battotal%1").arg(i)].toFloat());
|
||||
// accumulate
|
||||
currentLevel += m_values[QString("battery/batnow%1").arg(i)].toFloat();
|
||||
fullLevel += m_values[QString("battery/battotal%1").arg(i)].toFloat();
|
||||
currentLevel += m_values[QString("batnow%1").arg(i)].toFloat();
|
||||
fullLevel += m_values[QString("battotal%1").arg(i)].toFloat();
|
||||
}
|
||||
|
||||
// total
|
||||
m_trend[0].append(static_cast<int>(currentLevel));
|
||||
m_values["battery/batnow"] = static_cast<int>(currentLevel);
|
||||
m_values["battery/battotal"] = static_cast<int>(fullLevel);
|
||||
m_values["battery/bat"] = static_cast<int>(100 * currentLevel / fullLevel);
|
||||
m_values["batnow"] = static_cast<int>(currentLevel);
|
||||
m_values["battotal"] = static_cast<int>(fullLevel);
|
||||
m_values["bat"] = static_cast<int>(100 * currentLevel / fullLevel);
|
||||
|
||||
calculateRates();
|
||||
}
|
||||
@ -245,15 +243,14 @@ void BatterySource::calculateRates()
|
||||
|
||||
for (int i = 0; i < m_batteriesCount; i++) {
|
||||
auto approx = approximate(m_trend[i + 1]);
|
||||
m_values[QString("battery/batrate%1").arg(i)] = approx / interval;
|
||||
m_values[QString("battery/batleft%1").arg(i)]
|
||||
= interval * m_values[QString("battery/batnow%1").arg(i)].toFloat() / approx;
|
||||
m_values[QString("batrate%1").arg(i)] = approx / interval;
|
||||
m_values[QString("batleft%1").arg(i)] = interval * m_values[QString("batnow%1").arg(i)].toFloat() / approx;
|
||||
}
|
||||
|
||||
// total
|
||||
auto approx = approximate(m_trend[0]);
|
||||
m_values["battery/batrate"] = approx / interval;
|
||||
m_values["battery/batleft"] = interval * m_values["battery/batnow"].toFloat() / approx;
|
||||
m_values["batrate"] = approx / interval;
|
||||
m_values["batleft"] = interval * m_values["batnow"].toFloat() / approx;
|
||||
|
||||
// old data cleanup
|
||||
for (auto &trend : m_trend.keys()) {
|
||||
|
@ -74,7 +74,7 @@ QStringList CustomSource::getSources()
|
||||
{
|
||||
QStringList sources;
|
||||
for (auto &item : m_extScripts->activeItems())
|
||||
sources.append(QString("custom/%1").arg(item->tag("custom")));
|
||||
sources.append(item->tag("custom"));
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
@ -51,13 +51,13 @@ QVariant DesktopSource::data(const QString &_source)
|
||||
auto decrement = KWindowSystem::isPlatformX11() ? 1 : 0;
|
||||
auto current = nativeIndex - decrement;
|
||||
|
||||
if (_source == "desktop/current/name") {
|
||||
if (_source == "current/name") {
|
||||
return m_vdi->desktopNames().at(current);
|
||||
} else if (_source == "desktop/current/number") {
|
||||
} else if (_source == "current/number") {
|
||||
return current + 1;
|
||||
} else if (_source == "desktop/total/name") {
|
||||
} else if (_source == "total/name") {
|
||||
return m_vdi->desktopNames();
|
||||
} else if (_source == "desktop/total/number") {
|
||||
} else if (_source == "total/number") {
|
||||
return m_vdi->numberOfDesktops();
|
||||
}
|
||||
|
||||
@ -70,20 +70,20 @@ KSysGuard::SensorInfo *DesktopSource::initialData(const QString &_source) const
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "desktop/current/name") {
|
||||
if (_source == "current/name") {
|
||||
data->name = "Current desktop name";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "desktop/current/number") {
|
||||
} else if (_source == "current/number") {
|
||||
data->min = 0;
|
||||
data->name = "Current desktop number";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "desktop/total/name") {
|
||||
} else if (_source == "total/name") {
|
||||
data->name = "All desktops by name";
|
||||
data->variantType = QVariant::StringList;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "desktop/total/number") {
|
||||
} else if (_source == "total/number") {
|
||||
data->min = 0;
|
||||
data->name = "Desktops count";
|
||||
data->variantType = QVariant::Int;
|
||||
@ -97,10 +97,10 @@ KSysGuard::SensorInfo *DesktopSource::initialData(const QString &_source) const
|
||||
QStringList DesktopSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append("desktop/current/name");
|
||||
sources.append("desktop/current/number");
|
||||
sources.append("desktop/total/name");
|
||||
sources.append("desktop/total/number");
|
||||
sources.append("current/name");
|
||||
sources.append("current/number");
|
||||
sources.append("total/name");
|
||||
sources.append("total/number");
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
@ -17,23 +17,67 @@
|
||||
|
||||
#include "extsysmonsensor.h"
|
||||
|
||||
#include <QTimer>
|
||||
|
||||
#include "abstractextsysmonsource.h"
|
||||
#include "awdebug.h"
|
||||
|
||||
|
||||
ExtSysMonSensor::ExtSysMonSensor(KSysGuard::SensorContainer *_parent, const QString &_id,
|
||||
ExtSysMonSensor::ExtSysMonSensor(KSysGuard::SensorContainer *_parent, const QString &_id, const QString &_name,
|
||||
AbstractExtSysMonSource *_source)
|
||||
: KSysGuard::SensorObject(_id, _parent)
|
||||
: KSysGuard::SensorObject(_id, _name, _parent)
|
||||
, m_source(_source)
|
||||
, m_timer(new QTimer(this))
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
|
||||
m_source = _source;
|
||||
loadProperties();
|
||||
|
||||
connect(this, &SensorObject::subscribedChanged, [this](bool _state) { changeSubscription(_state); });
|
||||
connect(m_timer, &QTimer::timeout, [this]() { update(); });
|
||||
}
|
||||
|
||||
|
||||
ExtSysMonSensor::~ExtSysMonSensor()
|
||||
{
|
||||
qCDebug(LOG_ESS) << __PRETTY_FUNCTION__;
|
||||
|
||||
m_timer->stop();
|
||||
m_timer->deleteLater();
|
||||
}
|
||||
|
||||
|
||||
void ExtSysMonSensor::changeSubscription(bool _subscribed)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Subscription changed to" << _subscribed;
|
||||
|
||||
if (_subscribed) {
|
||||
m_timer->start(1000);
|
||||
} else {
|
||||
m_timer->stop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ExtSysMonSensor::update()
|
||||
{
|
||||
for (auto &source : m_source->sources()) {
|
||||
auto property = new KSysGuard::SensorProperty(source, this);
|
||||
auto property = sensor(source);
|
||||
if (!property->isSubscribed())
|
||||
continue; // skip properties which are not explicitly subscribed
|
||||
|
||||
auto value = m_source->data(source);
|
||||
qCWarning(LOG_ESS) << source << value;
|
||||
property->setValue(value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ExtSysMonSensor::loadProperties()
|
||||
{
|
||||
for (auto &source : m_source->sources()) {
|
||||
auto info = m_source->initialData(source);
|
||||
property->setName(info->name);
|
||||
auto property = new KSysGuard::SensorProperty(source, info->name, this);
|
||||
|
||||
property->setUnit(info->unit);
|
||||
property->setVariantType(info->variantType);
|
||||
@ -41,15 +85,6 @@ ExtSysMonSensor::ExtSysMonSensor(KSysGuard::SensorContainer *_parent, const QStr
|
||||
property->setMin(info->min);
|
||||
property->setMax(info->max);
|
||||
|
||||
m_properties[source] = property;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ExtSysMonSensor::update()
|
||||
{
|
||||
for (auto &source : m_properties.keys()) {
|
||||
auto value = m_source->data(source);
|
||||
m_properties[source]->setValue(value);
|
||||
addProperty(property);
|
||||
}
|
||||
}
|
||||
|
@ -22,19 +22,23 @@
|
||||
|
||||
|
||||
class AbstractExtSysMonSource;
|
||||
class QTimer;
|
||||
|
||||
class ExtSysMonSensor : public KSysGuard::SensorObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ExtSysMonSensor(KSysGuard::SensorContainer *_parent, const QString &_id, AbstractExtSysMonSource *_source);
|
||||
~ExtSysMonSensor() override = default;
|
||||
explicit ExtSysMonSensor(KSysGuard::SensorContainer *_parent, const QString &_id, const QString &_name,
|
||||
AbstractExtSysMonSource *_source);
|
||||
~ExtSysMonSensor() override;
|
||||
void changeSubscription(bool _subscribed);
|
||||
void update();
|
||||
|
||||
private:
|
||||
QHash<QString, KSysGuard::SensorProperty *> m_properties;
|
||||
void loadProperties();
|
||||
AbstractExtSysMonSource *m_source = nullptr;
|
||||
QTimer *m_timer = nullptr;
|
||||
};
|
||||
|
||||
|
||||
|
@ -75,7 +75,7 @@ QVariant GPULoadSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
if (_source == "gpu/load")
|
||||
if (_source == "load")
|
||||
run();
|
||||
|
||||
return m_values[_source];
|
||||
@ -87,7 +87,7 @@ KSysGuard::SensorInfo *GPULoadSource::initialData(const QString &_source) const
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "gpu/load") {
|
||||
if (_source == "load") {
|
||||
data->min = 0.0;
|
||||
data->max = 100.0;
|
||||
data->name = "GPU usage";
|
||||
@ -115,7 +115,7 @@ void GPULoadSource::run()
|
||||
QStringList GPULoadSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append("gpu/load");
|
||||
sources.append("load");
|
||||
|
||||
return sources;
|
||||
}
|
||||
@ -134,7 +134,7 @@ void GPULoadSource::updateValue()
|
||||
if (!str.contains("<gpu_util>"))
|
||||
continue;
|
||||
auto load = str.remove("<gpu_util>").remove("</gpu_util>").remove('%');
|
||||
m_values["gpu/load"] = load.toFloat();
|
||||
m_values["load"] = load.toFloat();
|
||||
break;
|
||||
}
|
||||
} else if (m_device == "ati") {
|
||||
@ -142,7 +142,7 @@ void GPULoadSource::updateValue()
|
||||
if (!str.contains("load"))
|
||||
continue;
|
||||
QString load = str.split(' ', Qt::SkipEmptyParts)[3].remove('%');
|
||||
m_values["gpu/load"] = load.toFloat();
|
||||
m_values["load"] = load.toFloat();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ QVariant GPUTemperatureSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
if (_source == "gpu/temperature")
|
||||
if (_source == "temperature")
|
||||
run();
|
||||
|
||||
return m_values[_source];
|
||||
@ -67,7 +67,7 @@ KSysGuard::SensorInfo *GPUTemperatureSource::initialData(const QString &_source)
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "gpu/temperature") {
|
||||
if (_source == "temperature") {
|
||||
data->min = 0.0;
|
||||
data->max = 0.0;
|
||||
data->name = "GPU temperature";
|
||||
@ -95,7 +95,7 @@ void GPUTemperatureSource::run()
|
||||
QStringList GPUTemperatureSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append("gpu/temperature");
|
||||
sources.append("temperature");
|
||||
|
||||
return sources;
|
||||
}
|
||||
@ -114,7 +114,7 @@ void GPUTemperatureSource::updateValue()
|
||||
if (!str.contains("<gpu_temp>"))
|
||||
continue;
|
||||
QString temp = str.remove("<gpu_temp>").remove("C</gpu_temp>");
|
||||
m_values["gpu/temperature"] = temp.toFloat();
|
||||
m_values["temperature"] = temp.toFloat();
|
||||
break;
|
||||
}
|
||||
} else if (m_device == "ati") {
|
||||
@ -122,7 +122,7 @@ void GPUTemperatureSource::updateValue()
|
||||
if (!str.contains("Temperature"))
|
||||
continue;
|
||||
QString temp = str.split(' ', Qt::SkipEmptyParts).at(4);
|
||||
m_values["gpu/temperature"] = temp.toFloat();
|
||||
m_values["temperature"] = temp.toFloat();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ QVariant HDDTemperatureSource::data(const QString &_source)
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
QString device = _source;
|
||||
device.remove("hdd/temperature");
|
||||
device.remove("temperature");
|
||||
// run cmd
|
||||
if (m_processes[device]->state() == QProcess::NotRunning) {
|
||||
auto cmd = m_cmd.first();
|
||||
@ -95,7 +95,7 @@ KSysGuard::SensorInfo *HDDTemperatureSource::initialData(const QString &_source)
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto device = _source;
|
||||
device.remove("hdd/temperature");
|
||||
device.remove("temperature");
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
data->min = 0.0;
|
||||
@ -112,7 +112,7 @@ QStringList HDDTemperatureSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
for (auto &device : m_devices)
|
||||
sources.append(QString("hdd/temperature%1").arg(device));
|
||||
sources.append(QString("temperature%1").arg(device));
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ KSysGuard::SensorInfo *LoadSource::initialData(const QString &_source) const
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source.startsWith("load/load")) {
|
||||
if (_source.startsWith("load")) {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Simple sources for load tests";
|
||||
@ -69,7 +69,7 @@ QStringList LoadSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
for (int i = 0; i < 1000; i++)
|
||||
sources.append(QString("load/load%1").arg(i));
|
||||
sources.append(QString("load%1").arg(i));
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ NetworkSource::~NetworkSource()
|
||||
|
||||
QVariant NetworkSource::data(const QString &_source)
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
qCWarning(LOG_ESS) << "Source" << _source;
|
||||
|
||||
if (!m_values.contains(_source))
|
||||
run();
|
||||
@ -65,11 +65,11 @@ KSysGuard::SensorInfo *NetworkSource::initialData(const QString &_source) const
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "network/current/name") {
|
||||
if (_source == "device") {
|
||||
data->name = "Current network device name";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "network/current/ssid") {
|
||||
} else if (_source == "ssid") {
|
||||
data->name = "Current SSID name";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
@ -81,16 +81,16 @@ KSysGuard::SensorInfo *NetworkSource::initialData(const QString &_source) const
|
||||
|
||||
void NetworkSource::run()
|
||||
{
|
||||
m_values["network/current/name"] = NetworkSource::getCurrentDevice();
|
||||
m_process->start("iwgetid", QStringList() << "-r");
|
||||
m_values["device"] = NetworkSource::getCurrentDevice();
|
||||
m_process->start("iwgetid", {"-r"});
|
||||
}
|
||||
|
||||
|
||||
QStringList NetworkSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append("network/current/name");
|
||||
sources.append("network/current/ssid");
|
||||
sources.append("device");
|
||||
sources.append("ssid");
|
||||
|
||||
return sources;
|
||||
}
|
||||
@ -104,7 +104,7 @@ void NetworkSource::updateSsid()
|
||||
QString qoutput = QString::fromUtf8(m_process->readAllStandardOutput()).trimmed();
|
||||
qCInfo(LOG_ESS) << "Output" << qoutput;
|
||||
|
||||
m_values["network/current/ssid"] = qoutput;
|
||||
m_values["ssid"] = qoutput;
|
||||
}
|
||||
|
||||
|
||||
|
@ -95,51 +95,51 @@ KSysGuard::SensorInfo *PlayerSource::initialData(const QString &_source) const
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "player/album") {
|
||||
if (_source == "album") {
|
||||
data->name = "Current song album";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "player/salbum") {
|
||||
} 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 == "player/dalbum") {
|
||||
} 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 == "player/artist") {
|
||||
} else if (_source == "artist") {
|
||||
data->name = "Current song artist";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "player/sartist") {
|
||||
} 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 == "player/dartist") {
|
||||
} 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 == "player/duration") {
|
||||
} 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 == "player/progress") {
|
||||
} 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 == "player/title") {
|
||||
} else if (_source == "title") {
|
||||
data->name = "Current song title";
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "player/stitle") {
|
||||
} 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 == "player/dtitle") {
|
||||
} else if (_source == "dtitle") {
|
||||
data->name = QString("Current song title (%1 symbols, dynamic)").arg(m_symbols);
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
@ -166,33 +166,30 @@ void PlayerSource::run()
|
||||
|
||||
// dymanic properties
|
||||
// solid
|
||||
m_values["player/salbum"] = stripString(m_values["player/album"].toString(), m_symbols);
|
||||
m_values["player/sartist"] = stripString(m_values["player/artist"].toString(), m_symbols);
|
||||
m_values["player/stitle"] = stripString(m_values["player/title"].toString(), m_symbols);
|
||||
m_values["salbum"] = stripString(m_values["album"].toString(), m_symbols);
|
||||
m_values["sartist"] = stripString(m_values["artist"].toString(), m_symbols);
|
||||
m_values["stitle"] = stripString(m_values["title"].toString(), m_symbols);
|
||||
// dynamic
|
||||
m_values["player/dalbum"]
|
||||
= buildString(m_values["player/dalbum"].toString(), m_values["player/album"].toString(), m_symbols);
|
||||
m_values["player/dartist"]
|
||||
= buildString(m_values["player/dartist"].toString(), m_values["player/artist"].toString(), m_symbols);
|
||||
m_values["player/dtitle"]
|
||||
= buildString(m_values["player/dtitle"].toString(), m_values["player/title"].toString(), m_symbols);
|
||||
m_values["dalbum"] = buildString(m_values["dalbum"].toString(), m_values["album"].toString(), m_symbols);
|
||||
m_values["dartist"] = buildString(m_values["dartist"].toString(), m_values["artist"].toString(), m_symbols);
|
||||
m_values["dtitle"] = buildString(m_values["dtitle"].toString(), m_values["title"].toString(), m_symbols);
|
||||
}
|
||||
|
||||
|
||||
QStringList PlayerSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append("player/album");
|
||||
sources.append("player/dalbum");
|
||||
sources.append("player/salbum");
|
||||
sources.append("player/artist");
|
||||
sources.append("player/dartist");
|
||||
sources.append("player/sartist");
|
||||
sources.append("player/duration");
|
||||
sources.append("player/progress");
|
||||
sources.append("player/title");
|
||||
sources.append("player/dtitle");
|
||||
sources.append("player/stitle");
|
||||
sources.append("album");
|
||||
sources.append("dalbum");
|
||||
sources.append("salbum");
|
||||
sources.append("artist");
|
||||
sources.append("dartist");
|
||||
sources.append("sartist");
|
||||
sources.append("duration");
|
||||
sources.append("progress");
|
||||
sources.append("title");
|
||||
sources.append("dtitle");
|
||||
sources.append("stitle");
|
||||
|
||||
return sources;
|
||||
}
|
||||
@ -245,10 +242,10 @@ void PlayerSource::mpdSocketReadyRead()
|
||||
// there are one more time...
|
||||
if ((metadata == "time") && (data.contains(':'))) {
|
||||
QStringList times = data.split(':');
|
||||
m_mpdCached["player/duration"] = times.at(0).toInt();
|
||||
m_mpdCached["player/progress"] = times.at(1).toInt();
|
||||
m_mpdCached["duration"] = times.at(0).toInt();
|
||||
m_mpdCached["progress"] = times.at(1).toInt();
|
||||
} else if (m_metadata.contains(metadata)) {
|
||||
m_mpdCached[QString("player/%1").arg(metadata)] = data;
|
||||
m_mpdCached[metadata] = data;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -266,11 +263,11 @@ void PlayerSource::mpdSocketWritten(const qint64 _bytes)
|
||||
QVariantHash PlayerSource::defaultInfo()
|
||||
{
|
||||
QVariantHash info;
|
||||
info["player/album"] = "unknown";
|
||||
info["player/artist"] = "unknown";
|
||||
info["player/duration"] = 0;
|
||||
info["player/progress"] = 0;
|
||||
info["player/title"] = "unknown";
|
||||
info["album"] = "unknown";
|
||||
info["artist"] = "unknown";
|
||||
info["duration"] = 0;
|
||||
info["progress"] = 0;
|
||||
info["title"] = "unknown";
|
||||
|
||||
return info;
|
||||
}
|
||||
@ -321,11 +318,11 @@ QVariantHash PlayerSource::getPlayerMprisInfo(const QString &_mpris)
|
||||
// another portion of dirty magic
|
||||
auto map = qdbus_cast<QVariantHash>(
|
||||
response.arguments().first().value<QDBusVariant>().variant().value<QDBusArgument>());
|
||||
info["player/album"] = map.value("xesam:album", "unknown");
|
||||
info["album"] = map.value("xesam:album", "unknown");
|
||||
// artist is array
|
||||
info["player/artist"] = map.value("xesam:artist", "unknown").toString();
|
||||
info["player/duration"] = map.value("mpris:length", 0).toInt() / (1000 * 1000);
|
||||
info["player/title"] = map.value("xesam:title", "unknown");
|
||||
info["artist"] = map.value("xesam:artist", "unknown").toString();
|
||||
info["duration"] = map.value("mpris:length", 0).toInt() / (1000 * 1000);
|
||||
info["title"] = map.value("xesam:title", "unknown");
|
||||
}
|
||||
|
||||
// position
|
||||
@ -336,8 +333,7 @@ QVariantHash PlayerSource::getPlayerMprisInfo(const QString &_mpris)
|
||||
qCWarning(LOG_ESS) << "Error message" << response.errorMessage();
|
||||
} else {
|
||||
// this cast is simpler than the previous one ;)
|
||||
info["player/progress"]
|
||||
= response.arguments().first().value<QDBusVariant>().variant().toLongLong() / (1000 * 1000);
|
||||
info["progress"] = response.arguments().first().value<QDBusVariant>().variant().toLongLong() / (1000 * 1000);
|
||||
}
|
||||
|
||||
return info;
|
||||
|
@ -56,17 +56,17 @@ KSysGuard::SensorInfo *ProcessesSource::initialData(const QString &_source) cons
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "ps/running/count") {
|
||||
if (_source == "running/count") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Count of running processes";
|
||||
data->variantType = QVariant::Int;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "ps/running/list") {
|
||||
} else if (_source == "running/list") {
|
||||
data->name = "All running processes list";
|
||||
data->variantType = QVariant::StringList;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
} else if (_source == "ps/total/count") {
|
||||
} else if (_source == "total/count") {
|
||||
data->min = 0;
|
||||
data->max = 0;
|
||||
data->name = "Total count of processes";
|
||||
@ -99,18 +99,18 @@ void ProcessesSource::run()
|
||||
cmdFile.close();
|
||||
}
|
||||
|
||||
m_values["ps/running/count"] = running.count();
|
||||
m_values["ps/running/list"] = running;
|
||||
m_values["ps/total/count"] = directories.count();
|
||||
m_values["running/count"] = running.count();
|
||||
m_values["running/list"] = running;
|
||||
m_values["total/count"] = directories.count();
|
||||
}
|
||||
|
||||
|
||||
QStringList ProcessesSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append("ps/running/count");
|
||||
sources.append("ps/running/list");
|
||||
sources.append("ps/total/count");
|
||||
sources.append("running/count");
|
||||
sources.append("running/list");
|
||||
sources.append("total/count");
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
@ -48,14 +48,12 @@ QVariant QuotesSource::data(const QString &_source)
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
int ind = index(_source);
|
||||
auto service = _source;
|
||||
service.remove("quotes/");
|
||||
if (!m_values.contains(service)) {
|
||||
if (!m_values.contains(_source)) {
|
||||
QVariantHash data = m_extQuotes->itemByTagNumber(ind)->run();
|
||||
for (auto &key : data.keys())
|
||||
m_values[key] = data[key];
|
||||
}
|
||||
QVariant value = m_values.take(service);
|
||||
QVariant value = m_values.take(_source);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -66,37 +64,37 @@ KSysGuard::SensorInfo *QuotesSource::initialData(const QString &_source) const
|
||||
|
||||
int ind = index(_source);
|
||||
auto data = new KSysGuard::SensorInfo;
|
||||
if (_source.startsWith("quotes/pricechg")) {
|
||||
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("quotes/price")) {
|
||||
} 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("quotes/percpricechg")) {
|
||||
} 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("quotes/volumechg")) {
|
||||
} 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("quotes/volume")) {
|
||||
} 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("quotes/percvolumechg")) {
|
||||
} 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());
|
||||
@ -118,12 +116,12 @@ QStringList QuotesSource::getSources()
|
||||
{
|
||||
QStringList sources;
|
||||
for (auto &item : m_extQuotes->activeItems()) {
|
||||
sources.append(QString("quotes/%1").arg(item->tag("price")));
|
||||
sources.append(QString("quotes/%1").arg(item->tag("pricechg")));
|
||||
sources.append(QString("quotes/%1").arg(item->tag("percpricechg")));
|
||||
sources.append(QString("quotes/%1").arg(item->tag("volume")));
|
||||
sources.append(QString("quotes/%1").arg(item->tag("volumechg")));
|
||||
sources.append(QString("quotes/%1").arg(item->tag("percvolumechg")));
|
||||
sources.append(item->tag("price"));
|
||||
sources.append(item->tag("pricechg"));
|
||||
sources.append(item->tag("percpricechg"));
|
||||
sources.append(item->tag("volume"));
|
||||
sources.append(item->tag("volumechg"));
|
||||
sources.append(item->tag("percvolumechg"));
|
||||
}
|
||||
|
||||
return sources;
|
||||
|
@ -48,14 +48,12 @@ QVariant RequestSource::data(const QString &_source)
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
int ind = index(_source);
|
||||
auto service = _source;
|
||||
service.remove("network/");
|
||||
if (!m_values.contains(service)) {
|
||||
if (!m_values.contains(_source)) {
|
||||
QVariantHash data = m_extNetRequest->itemByTagNumber(ind)->run();
|
||||
for (auto &key : data.keys())
|
||||
m_values[key] = data[key];
|
||||
}
|
||||
QVariant value = m_values.take(service);
|
||||
QVariant value = m_values.take(_source);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -66,7 +64,7 @@ KSysGuard::SensorInfo *RequestSource::initialData(const QString &_source) const
|
||||
|
||||
int ind = index(_source);
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source.startsWith("network/response")) {
|
||||
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;
|
||||
@ -86,7 +84,7 @@ QStringList RequestSource::getSources()
|
||||
{
|
||||
QStringList sources;
|
||||
for (auto &item : m_extNetRequest->activeItems())
|
||||
sources.append(QString("network/%1").arg(item->tag("response")));
|
||||
sources.append(item->tag("response"));
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
@ -59,13 +59,13 @@ KSysGuard::SensorInfo *SystemInfoSource::initialData(const QString &_source) con
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source == "system/brightness") {
|
||||
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 == "system/volume") {
|
||||
} else if (_source == "volume") {
|
||||
data->min = 0.0;
|
||||
data->max = 100.0;
|
||||
data->name = "Master volume";
|
||||
@ -79,16 +79,16 @@ KSysGuard::SensorInfo *SystemInfoSource::initialData(const QString &_source) con
|
||||
|
||||
void SystemInfoSource::run()
|
||||
{
|
||||
m_values["system/brightness"] = SystemInfoSource::getCurrentBrightness();
|
||||
m_values["system/volume"] = SystemInfoSource::getCurrentVolume();
|
||||
m_values["brightness"] = SystemInfoSource::getCurrentBrightness();
|
||||
m_values["volume"] = SystemInfoSource::getCurrentVolume();
|
||||
}
|
||||
|
||||
|
||||
QStringList SystemInfoSource::sources() const
|
||||
{
|
||||
QStringList sources;
|
||||
sources.append("system/brightness");
|
||||
sources.append("system/volume");
|
||||
sources.append("brightness");
|
||||
sources.append("volume");
|
||||
|
||||
return sources;
|
||||
}
|
||||
@ -100,24 +100,24 @@ QVariant SystemInfoSource::fromDBusVariant(const QVariant &value)
|
||||
}
|
||||
|
||||
|
||||
float SystemInfoSource::getCurrentBrightness()
|
||||
double SystemInfoSource::getCurrentBrightness()
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Get current brightness";
|
||||
|
||||
auto maxBrightness
|
||||
= sendDBusRequest("org.kde.Solid.PowerManagement", "/org/kde/Solid/PowerManagement/Actions/BrightnessControl",
|
||||
"org.kde.Solid.PowerManagement.Actions.BrightnessControl", "brightnessMax")
|
||||
.toFloat();
|
||||
.toDouble();
|
||||
auto brightness
|
||||
= sendDBusRequest("org.kde.Solid.PowerManagement", "/org/kde/Solid/PowerManagement/Actions/BrightnessControl",
|
||||
"org.kde.Solid.PowerManagement.Actions.BrightnessControl", "brightness")
|
||||
.toFloat();
|
||||
.toDouble();
|
||||
|
||||
return std::round(100.0f * brightness / maxBrightness);
|
||||
return std::round(100.0 * brightness / maxBrightness);
|
||||
}
|
||||
|
||||
|
||||
float SystemInfoSource::getCurrentVolume()
|
||||
double SystemInfoSource::getCurrentVolume()
|
||||
{
|
||||
qCDebug(LOG_ESS) << "Get current volume";
|
||||
|
||||
@ -129,7 +129,7 @@ float SystemInfoSource::getCurrentVolume()
|
||||
|
||||
if (currentMixer.isEmpty()) {
|
||||
qCWarning(LOG_ESS) << "Mixer is empty";
|
||||
return std::numeric_limits<float>::quiet_NaN();
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
currentMixer.replace(":", "_").replace(".", "_").replace("-", "_");
|
||||
|
||||
@ -140,14 +140,14 @@ float SystemInfoSource::getCurrentVolume()
|
||||
.toString();
|
||||
if (currentControl.isEmpty()) {
|
||||
qCWarning(LOG_ESS) << "Control is empty";
|
||||
return std::numeric_limits<float>::quiet_NaN();
|
||||
return std::numeric_limits<double>::quiet_NaN();
|
||||
}
|
||||
currentControl.replace(":", "_").replace(".", "_").replace("-", "_");
|
||||
|
||||
auto path = QString("/Mixers/%1/%2").arg(currentMixer).arg(currentControl);
|
||||
return fromDBusVariant(sendDBusRequest("org.kde.kmix", path, "org.freedesktop.DBus.Properties", "Get",
|
||||
QVariantList({"org.kde.KMix.Control", "volume"})))
|
||||
.toFloat();
|
||||
.toDouble();
|
||||
}
|
||||
|
||||
|
||||
|
@ -39,8 +39,8 @@ private:
|
||||
// configuration and values
|
||||
QVariantHash m_values;
|
||||
static QVariant fromDBusVariant(const QVariant &value);
|
||||
static float getCurrentBrightness();
|
||||
static float getCurrentVolume();
|
||||
static double getCurrentBrightness();
|
||||
static double getCurrentVolume();
|
||||
static QVariant sendDBusRequest(const QString &destination, const QString &path, const QString &interface,
|
||||
const QString &method, const QVariantList &args = QVariantList());
|
||||
};
|
||||
|
@ -75,7 +75,7 @@ QStringList UpgradeSource::getSources()
|
||||
{
|
||||
QStringList sources;
|
||||
for (auto &item : m_extUpgrade->activeItems())
|
||||
sources.append(QString("upgrade/%1").arg(item->tag("pkgcount")));
|
||||
sources.append(item->tag("pkgcount"));
|
||||
|
||||
return sources;
|
||||
}
|
||||
|
@ -48,14 +48,12 @@ QVariant WeatherSource::data(const QString &_source)
|
||||
qCDebug(LOG_ESS) << "Source" << _source;
|
||||
|
||||
int ind = index(_source);
|
||||
auto service = _source;
|
||||
service.remove("weather/");
|
||||
if (!m_values.contains(service)) {
|
||||
if (!m_values.contains(_source)) {
|
||||
QVariantHash data = m_extWeather->itemByTagNumber(ind)->run();
|
||||
for (auto &key : data.keys())
|
||||
m_values[key] = data[key];
|
||||
}
|
||||
QVariant value = m_values.take(service);
|
||||
QVariant value = m_values.take(_source);
|
||||
return value;
|
||||
}
|
||||
|
||||
@ -66,35 +64,35 @@ KSysGuard::SensorInfo *WeatherSource::initialData(const QString &_source) const
|
||||
|
||||
int ind = index(_source);
|
||||
auto data = new KSysGuard::SensorInfo();
|
||||
if (_source.startsWith("weather/weatherId")) {
|
||||
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/weather")) {
|
||||
} 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("weather/humidity")) {
|
||||
} 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("weather/pressure")) {
|
||||
} 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("weather/temperature")) {
|
||||
} 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("weather/timestamp")) {
|
||||
} else if (_source.startsWith("timestamp")) {
|
||||
data->name = QString("Timestamp for '%1'").arg(m_extWeather->itemByTagNumber(ind)->uniq());
|
||||
data->variantType = QVariant::String;
|
||||
data->unit = KSysGuard::UnitNone;
|
||||
@ -114,12 +112,12 @@ QStringList WeatherSource::getSources()
|
||||
{
|
||||
QStringList sources;
|
||||
for (auto &item : m_extWeather->activeItems()) {
|
||||
sources.append(QString("weather/%1").arg(item->tag("weatherId")));
|
||||
sources.append(QString("weather/%1").arg(item->tag("weather")));
|
||||
sources.append(QString("weather/%1").arg(item->tag("humidity")));
|
||||
sources.append(QString("weather/%1").arg(item->tag("pressure")));
|
||||
sources.append(QString("weather/%1").arg(item->tag("temperature")));
|
||||
sources.append(QString("weather/%1").arg(item->tag("timestamp")));
|
||||
sources.append(item->tag("weatherId"));
|
||||
sources.append(item->tag("weather"));
|
||||
sources.append(item->tag("humidity"));
|
||||
sources.append(item->tag("pressure"));
|
||||
sources.append(item->tag("temperature"));
|
||||
sources.append(item->tag("timestamp"));
|
||||
}
|
||||
|
||||
return sources;
|
||||
|
Reference in New Issue
Block a user