lena_pi/LenaPi/controllers/SettingsHandler.h
2021-10-13 15:06:09 +02:00

43 lines
1.1 KiB
C++

#ifndef SETTINGSHANDLER_H
#define SETTINGSHANDLER_H
#include <QObject>
#include <qsettings.h>
/**
* @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<QString,QVariant> mDefaults;
};
#endif // SETTINGSHANDLER_H