/**************************************************************************** ** ScStw Libraries ** Copyright (C) 2020 Itsblue development ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . ****************************************************************************/ #ifndef SCSTWQMLSETTING_H #define SCSTWQMLSETTING_H #include #include class ScStwSettings; class ScStwSetting : public QObject { Q_OBJECT Q_PROPERTY(QVariant value READ getValue WRITE setValue NOTIFY valueChanged) Q_PROPERTY(QVariant readonlyValue READ getValue NOTIFY valueChanged) protected: explicit ScStwSetting(int key, int keyLevel, ScStwSettings*scStwSettings, QObject *parent); friend class ScStwSettings; int key; int keyLevel; bool hasToReload; private: QVariant valueCache; ScStwSettings *scStwSettings; public slots: QVariant getValue(); void setValue(QVariant value); protected slots: void handleSettingChange(int key, int keyLevel, QVariant value); signals: void valueChanged(); }; #endif // SCSTWQMLSETTING_H