mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-12-15 17:43:41 +00:00
refactor: simplify sources processing
This commit is contained in:
@ -20,31 +20,42 @@
|
||||
#include <QObject>
|
||||
#include <QRegularExpression>
|
||||
#include <QVariant>
|
||||
#include <ksysguard/systemstats/SensorInfo.h>
|
||||
|
||||
|
||||
namespace KSysGuard
|
||||
{
|
||||
class SensorInfo;
|
||||
}
|
||||
|
||||
class AbstractExtSysMonSource : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AbstractExtSysMonSource(QObject *_parent, const QStringList &)
|
||||
explicit AbstractExtSysMonSource(QObject *_parent)
|
||||
: QObject(_parent){};
|
||||
~AbstractExtSysMonSource() override = default;
|
||||
virtual QVariant data(const QString &_source) = 0;
|
||||
[[nodiscard]] virtual KSysGuard::SensorInfo *initialData(const QString &_source) const = 0;
|
||||
virtual void run() = 0;
|
||||
[[nodiscard]] virtual QStringList sources() const = 0;
|
||||
[[nodiscard]] virtual QHash<QString, KSysGuard::SensorInfo *> 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 = 0)
|
||||
{
|
||||
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 &);
|
||||
|
||||
Reference in New Issue
Block a user