FluentUI/example/src/helper/SettingsHelper.h
朱子楚\zhuzi 3f6ef13cd0 update
2024-04-11 15:09:47 +08:00

44 lines
1.1 KiB
C++

#pragma once
#include <QtCore/qobject.h>
#include <QtQml/qqml.h>
#include <QSettings>
#include <QScopedPointer>
#include <QFileInfo>
#include <QCoreApplication>
#include <QDir>
#include "src/singleton.h"
class SettingsHelper : public QObject {
Q_OBJECT
private:
explicit SettingsHelper(QObject *parent = nullptr);
public:
SINGLETON(SettingsHelper)
~SettingsHelper() override;
void init(char *argv[]);
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(); }
private:
void save(const QString &key, QVariant val);
QVariant get(const QString &key, QVariant def = {});
private:
QScopedPointer<QSettings> m_settings;
};