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;
|
|
|
|
};
|