FluentUI/example/src/helper/SettingsHelper.h

44 lines
1.1 KiB
C
Raw Normal View History

2024-04-11 14:51:43 +08:00
#pragma once
2023-09-17 20:36:33 +08:00
#include <QtCore/qobject.h>
#include <QtQml/qqml.h>
#include <QSettings>
#include <QScopedPointer>
#include <QFileInfo>
#include <QCoreApplication>
#include <QDir>
#include "src/singleton.h"
2024-04-11 14:51:43 +08:00
class SettingsHelper : public QObject {
Q_OBJECT
2023-09-17 20:36:33 +08:00
private:
2024-04-11 14:51:43 +08:00
explicit SettingsHelper(QObject *parent = nullptr);
2023-09-17 20:36:33 +08:00
public:
2024-04-11 14:51:43 +08:00
SINGLETON(SettingsHelper)
2023-09-17 20:36:33 +08:00
~SettingsHelper() override;
2024-04-11 14:51:43 +08:00
2023-09-17 20:36:33 +08:00
void init(char *argv[]);
2024-04-11 14:51:43 +08:00
Q_INVOKABLE void saveDarkMode(int darkModel) { save("darkMode", darkModel); }
Q_INVOKABLE int getDarkMode() { return get("darkMode", QVariant(0)).toInt(); }
Q_INVOKABLE void saveUseSystemAppBar(bool useSystemAppBar) { save("useSystemAppBar", useSystemAppBar); }
Q_INVOKABLE bool getUseSystemAppBar() { return get("useSystemAppBar", QVariant(false)).toBool(); }
Q_INVOKABLE void saveLanguage(const QString &language) { save("language", language); }
Q_INVOKABLE QString getLanguage() { return get("language", QVariant("en_US")).toString(); }
2023-09-17 20:36:33 +08:00
private:
2024-04-11 14:51:43 +08:00
void save(const QString &key, QVariant val);
QVariant get(const QString &key, QVariant def = {});
2023-09-17 20:36:33 +08:00
private:
QScopedPointer<QSettings> m_settings;
};