#ifndef SETTINGSHANDLER_H #define SETTINGSHANDLER_H #include #include /** * @brief Handles app settings */ class SettingsHandler : public QObject { Q_OBJECT public: explicit SettingsHandler(QObject *parent = nullptr); SettingsHandler(QSettings* settings, QObject *parent = nullptr); static SettingsHandler* createSettingsHandlerAndFillWithDefaultsIfMissing(QSettings* settings); inline void setSettings(QSettings* settings) { mSettings = settings;} inline QSettings* getSettings() const { return mSettings; } void fillWithDefaultIfMissing(); QString getRootPath() const; QString getProfile() const; bool isEnergySaverEnabled() const; int getEnergySaverTimeout() const; QString getShutdownScript() const; private: void initDefaults(); QSettings* mSettings; QHash mDefaults; }; #endif // SETTINGSHANDLER_H