shared-libraries/ScStwLibraries/headers/client/scstwremotesettings.h

63 lines
2.0 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 SCSTWREMOTESETTINGS_H
#define SCSTWREMOTESETTINGS_H
#include <QObject>
#include "scstwsettings.h"
#include "scstwclient.h"
#include <QMetaEnum>
class ScStwRemoteSettings : public ScStwSettings
{
Q_OBJECT
Q_PROPERTY(ScStwClient* scStwClient READ getScStwClient WRITE setScStwClient NOTIFY scStwClientChanged)
public:
ScStwRemoteSettings(QObject * parent = nullptr);
ScStwRemoteSettings(ScStwClient * scStwClient, QObject * parent = nullptr);
enum SettingsMode {
LOCAL,
REMOTE
};
protected:
QVariant readSetting(QString key, int keyInt, int keyLevel);
bool writeSetting(QString key, QVariant value, int keyInt,int keyLevel = -1);
bool setDefaultSetting(QString key, QVariant defaultVariant, int keyInt,int keyLevel = -1);
private:
ScStwClient * scStwClient;
public slots:
ScStwClient *getScStwClient();
void setScStwClient(ScStwClient *client);
private slots:
void handleClientStateChange();
void handleBaseStationSignal(ScStw::SignalKey key, QVariant data);
SettingsMode getMode();
signals:
void scStwClientChanged();
};
#endif // SCSTWREMOTESETTINGS_H