#pragma once #include "configobject.hpp" #include namespace ZShell::config { class Performance : public ConfigObject { Q_OBJECT QML_ANONYMOUS CFG_PROPERTY(bool, enabled, true) CFG_PROPERTY(bool, showBattery, false) CFG_PROPERTY(bool, showCpu, true) CFG_PROPERTY(bool, showGpu, true) CFG_PROPERTY(bool, showMemory, true) CFG_PROPERTY(bool, showNetwork, true) CFG_PROPERTY(bool, showStorage, true) CFG_PROPERTY(bool, showVram, true) public: explicit Performance(QObject* parent = nullptr) : ConfigObject(parent) {} }; class DashboardSizes : public ConfigObject { Q_OBJECT QML_ANONYMOUS CFG_PROPERTY(int, dateTimeWidth, 110) CFG_PROPERTY(int, infoIconSize, 25) CFG_PROPERTY(int, infoWidth, 200) CFG_PROPERTY(int, mediaCoverArtSize, 150) CFG_PROPERTY(int, mediaProgressSweep, 180) CFG_PROPERTY(int, mediaProgressThickness, 8) CFG_PROPERTY(int, mediaVisualizerSize, 200) CFG_PROPERTY(int, mediaWidth, 200) CFG_PROPERTY(int, resourceProgessThickness, 10) CFG_PROPERTY(int, resourceSize, 200) CFG_PROPERTY(int, tabIndicatorHeight, 3) CFG_PROPERTY(int, tabIndicatorSpacing, 5) CFG_PROPERTY(int, weatherWidth, 250) public: explicit DashboardSizes(QObject* parent = nullptr) : ConfigObject(parent) {} }; class Dashboard : public ConfigObject { Q_OBJECT QML_ANONYMOUS CFG_PROPERTY(bool, enabled, true) CFG_PROPERTY(int, mediaUpdateInterval, 2000) CONFIG_SUBOBJECT(Performance, performance) CFG_PROPERTY(int, resourceUpdateInterval, 1000) CONFIG_SUBOBJECT(DashboardSizes, sizes) public: explicit Dashboard(QObject* parent = nullptr) : ConfigObject(parent) , m_performance(new Performance(this)) , m_sizes(new DashboardSizes(this)) {} }; } // namespace ZShell::config