#pragma once #include "ConfigSection.hpp" #include #include class Apps : public ConfigSection { Q_OBJECT QML_UNCREATABLE("Instantiated internally by Config") CFG_PROPERTY(QVariantList, archiver, Archiver) CFG_PROPERTY(QVariantList, audio, Audio) CFG_PROPERTY(QVariantList, document, Document) CFG_PROPERTY(QVariantList, editor, Editor) CFG_PROPERTY(QVariantList, explorer, Explorer) CFG_PROPERTY(QVariantList, image, Image) CFG_PROPERTY(QVariantList, playback, Playback) CFG_PROPERTY(QVariantList, terminal, Terminal) public: explicit Apps(QObject *parent = nullptr); }; class Battery : public ConfigSection { Q_OBJECT QML_UNCREATABLE("Instantiated internally by Config") CFG_PROPERTY(int, critPerc, CritPerc) // Array of { icon, message, name, perc } objects. CFG_PROPERTY(QVariantList, popupThresholds, PopupThresholds) public: explicit Battery(QObject *parent = nullptr); }; class ColorSettings : public ConfigSection { Q_OBJECT QML_UNCREATABLE("Instantiated internally by Config") CFG_PROPERTY(int, hyprsunsetTemp, HyprsunsetTemp) CFG_PROPERTY(QString, mode, Mode) CFG_PROPERTY(bool, neovimColors, NeovimColors) CFG_PROPERTY(bool, scheduleDark, ScheduleDark) CFG_PROPERTY(int, scheduleDarkEnd, ScheduleDarkEnd) CFG_PROPERTY(int, scheduleDarkStart, ScheduleDarkStart) CFG_PROPERTY(bool, scheduleHyprsunset, ScheduleHyprsunset) CFG_PROPERTY(int, scheduleHyprsunsetEnd, ScheduleHyprsunsetEnd) CFG_PROPERTY(int, scheduleHyprsunsetStart, ScheduleHyprsunsetStart) CFG_PROPERTY(bool, schemeGeneration, SchemeGeneration) CFG_PROPERTY(bool, smart, Smart) public: explicit ColorSettings(QObject *parent = nullptr); }; class Idle : public ConfigSection { Q_OBJECT QML_UNCREATABLE("Instantiated internally by Config") // Array of { idleAction, name, timeout } objects. CFG_PROPERTY(QVariantList, timeouts, Timeouts) public: explicit Idle(QObject *parent = nullptr); }; class General : public ConfigSection { Q_OBJECT QML_UNCREATABLE("Instantiated internally by Config") CFG_SECTION(Apps, apps, Apps) CFG_SECTION(Battery, battery, Battery) CFG_SECTION(ColorSettings, color, Color) CFG_PROPERTY(QString, dateFormat, DateFormat) CFG_PROPERTY(bool, desktopIcons, DesktopIcons) CFG_SECTION(Idle, idle, Idle) CFG_PROPERTY(QString, logo, Logo) CFG_PROPERTY(bool, showOverFullscreen, ShowOverFullscreen) CFG_PROPERTY(QString, wallpaperPath, WallpaperPath) public: explicit General(QObject *parent = nullptr); };