#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); /** * @brief Provides a name filter for QDir that can be used to filter all audio files with valid formats. * @return name filter for QDir */ static QStringList getAudioFileNameFilters() {return {"*.mp3", "*.flac"};} 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