refactor: simplify sources processing

Also fix desktop source
This commit is contained in:
2024-03-28 11:14:45 +02:00
parent 0bcceefd47
commit a35b57e5d2
69 changed files with 552 additions and 1087 deletions

View File

@ -22,22 +22,23 @@
#include "abstractextsysmonsource.h"
namespace TaskManager
{
class VirtualDesktopInfo;
}
class DesktopSource : public AbstractExtSysMonSource
{
Q_OBJECT
public:
explicit DesktopSource(QObject *_parent, const QStringList &_args);
~DesktopSource() override;
static constexpr auto KWinDBusAdapter = "org.kde.KWin";
static constexpr auto VDIDBusPath = "/VirtualDesktopManager";
static constexpr auto PropertyDBusInterface = "org.freedesktop.DBus.Properties";
static constexpr auto PropertyDBusMethod = "Get";
explicit DesktopSource(QObject *_parent);
~DesktopSource() override = default;
QVariant data(const QString &_source) override;
[[nodiscard]] KSysGuard::SensorInfo *initialData(const QString &_source) const override;
void run() override{};
[[nodiscard]] QStringList sources() const override;
[[nodiscard]] QHash<QString, KSysGuard::SensorInfo *> sources() const override;
private:
TaskManager::VirtualDesktopInfo *m_vdi = nullptr;
static QHash<QString, QPair<int, QString>> extractDesktops(const QDBusArgument &_result);
static QVariant getDBusProperty(const QVariantList &_args);
};