43 lines
1.1 KiB
C++
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
|