shared-libraries/ScStwLibraries/headers/scstwsetting.h

59 lines
1.7 KiB
C++

/****************************************************************************
** 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 <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef SCSTWQMLSETTING_H
#define SCSTWQMLSETTING_H
#include <QObject>
#include <QVariant>
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