#ifndef APPSETTINGS_H #define APPSETTINGS_H #include #include #include #include "scstwremotesettings.h" class ScStwAppSettings : public ScStwRemoteSettings { Q_OBJECT public: explicit ScStwAppSettings(QObject *parent = nullptr); explicit ScStwAppSettings(ScStwClient * scStwClient, QObject *parent = nullptr); enum AppInternalSetting { InvalidSetting = -1, AppThemeSetting, BaseStationIpSetting }; Q_ENUM(AppInternalSetting) enum KeyLevelEnum { KeyLevel = 1 }; Q_ENUM(KeyLevelEnum) using ScStwSettings::readSetting; Q_INVOKABLE QVariant readSetting(AppInternalSetting key); using ScStwSettings::writeSetting; Q_INVOKABLE bool writeSetting(AppInternalSetting key, QVariant value); using ScStwSettings::setDefaultSetting; Q_INVOKABLE bool setDefaultSetting(AppInternalSetting key, QVariant defaultValue); static QString keyToString(int key) { return QMetaEnum::fromType().valueToKey(key); } static QVariant::Type keyToType(int key) { QMap types = { {AppThemeSetting, QVariant::String}, {BaseStationIpSetting, QVariant::String} }; if(types.contains(AppInternalSetting(key))) return types[AppInternalSetting(key)]; return QVariant::Invalid; } signals: public slots: }; extern ScStwAppSettings * pGlobalAppSettings; #endif // APPSETTINGS_H