Merge remote-tracking branch 'origin/master'
|
@ -4,6 +4,11 @@ SCSTWLIBRARIES_LIB = 1
|
|||
ScStwLibraries_QML {
|
||||
QT += qml quickcontrols2
|
||||
DEFINES += ScStwLibraries_QML
|
||||
|
||||
ScStwLibraries_Styling {
|
||||
DEFINES += ScStwLibraries_Styling
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ScStwLibraries_ClientLibs {
|
||||
|
@ -14,28 +19,54 @@ INCLUDEPATH += $$PWD/headers $$PWD
|
|||
|
||||
SOURCES += \
|
||||
$$PWD/sources/ScStw.cpp \
|
||||
$$PWD/sources/scstwsettings.cpp \
|
||||
$$PWD/sources/scstwsoundplayer.cpp \
|
||||
$$PWD/sources/scstwlibraries.cpp \
|
||||
$$PWD/sources/scstwrace.cpp \
|
||||
$$PWD/sources/scstwtimer.cpp
|
||||
$$PWD/sources/scstwtimer.cpp \
|
||||
$$PWD/sources/scstwsetting.cpp
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/headers/ScStw.hpp \
|
||||
$$PWD/headers/ScStwLibraries_global.h \
|
||||
$$PWD/headers/scstwlibraries.h \
|
||||
$$PWD/headers/scstwrace.h \
|
||||
$$PWD/headers/scstwsettings.h \
|
||||
$$PWD/headers/scstwsoundplayer.h \
|
||||
$$PWD/headers/scstwtimer.h
|
||||
$$PWD/headers/scstwtimer.h \
|
||||
$$PWD/headers/scstwsetting.h
|
||||
|
||||
ScStwLibraries_ClientLibs {
|
||||
SOURCES += \
|
||||
$$PWD/sources/scstwclient.cpp
|
||||
$$PWD/sources/scstwremotemonitorrace.cpp
|
||||
SOURCES += \
|
||||
$$PWD/sources/client/scstwclient.cpp \
|
||||
$$PWD/sources/client/scstwremotesettings.cpp \
|
||||
$$PWD/sources/client/scstwremotemonitorrace.cpp
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/headers/scstwclient.h \
|
||||
$$PWD/headers/scstwremotemonitorrace.h
|
||||
HEADERS += \
|
||||
$$PWD/headers/client/scstwclient.h \
|
||||
$$PWD/headers/client/scstwremotesettings.h \
|
||||
$$PWD/headers/client/scstwremotemonitorrace.h
|
||||
|
||||
INCLUDEPATH += $$PWD/headers/client
|
||||
}
|
||||
|
||||
ScStwLibraries_QML {
|
||||
ScStwLibraries_Styling {
|
||||
SOURCES += \
|
||||
$$PWD/sources/styling/scstwapptheme.cpp \
|
||||
$$PWD/sources/styling/scstwappthememanager.cpp
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/headers/styling/scstwapptheme.h \
|
||||
$$PWD/headers/styling/scstwappthememanager.h
|
||||
|
||||
RESOURCES += \
|
||||
$$PWD/resources/qml/ScStwStylingQml.qrc \
|
||||
$$PWD/resources/shared/ScStwStylingShared.qrc \
|
||||
|
||||
INCLUDEPATH += $$PWD/headers/styling
|
||||
}
|
||||
}
|
||||
|
||||
RESOURCES += \
|
||||
$$PWD/resources/ScStwLibrariesShared.qrc
|
||||
$$PWD/resources/shared/ScStwLibrariesShared.qrc
|
||||
|
|
|
@ -38,23 +38,9 @@
|
|||
* git submodule update --init --recursive
|
||||
* \endcode
|
||||
*
|
||||
* Add to the list of libraries for the Qt-Secret assembly. For an example you can create Main.Pro in which connect Qt-Secret and your project.pro files as subprojects.
|
||||
*
|
||||
* Main.pro:
|
||||
* \code{.pro}
|
||||
* TEMPLATE = subdirs
|
||||
* CONFIG += ordered
|
||||
*
|
||||
* SUBDIRS += \
|
||||
* ScStwLibraries \
|
||||
* MyProject
|
||||
*
|
||||
* ScStwLibraries.file = shared-libraries/ScStwLibraries/ScStwLibraries.pro
|
||||
* \endcode
|
||||
*
|
||||
* And in your MyProject.pro include the .pri file:
|
||||
* \code{.pro}
|
||||
* include($$PWD/../shared-libraries/ScStwLibraries/ScStwLibraries.pri)
|
||||
* include($$PWD/shared-libraries/ScStwLibraries/ScStwLibraries.pri)
|
||||
* \endcode
|
||||
*/
|
||||
|
||||
|
@ -75,28 +61,11 @@ public:
|
|||
RaceStateChanged = 9000,
|
||||
TimersChanged = 9001,
|
||||
ExtensionsChanged = 9002,
|
||||
NextStartActionChanged = 9003 /*, ProfilesChanged*/
|
||||
NextStartActionChanged = 9003, /*, ProfilesChanged*/
|
||||
SettingChanged = 9004
|
||||
};
|
||||
Q_ENUM(SignalKey)
|
||||
|
||||
/*!
|
||||
* \brief The BaseStationSetting enum contains all settings of the base station that can be changed by a client
|
||||
*
|
||||
* \see ScStw::baseStationSettingFromInt()
|
||||
* \see ScStw::baseStationSettingToString()
|
||||
* \see ScStw::baseStationSettingFromString()
|
||||
* \see ScStw::baseStationSettings
|
||||
*/
|
||||
enum BaseStationSetting {
|
||||
InvalidSetting = -1,
|
||||
ReadySoundEnableSetting,
|
||||
ReadySoundDelaySetting,
|
||||
AtYourMarksSoundEnableSetting,
|
||||
AtYourMarksSoundDelaySetting,
|
||||
SoundVolumeSetting
|
||||
};
|
||||
Q_ENUM(BaseStationSetting)
|
||||
|
||||
/*!
|
||||
* \brief The SocketCommand enum contains all commands the base station can handle
|
||||
*
|
||||
|
@ -107,9 +76,9 @@ public:
|
|||
|
||||
InitializeSessionCommand = 1,
|
||||
|
||||
StartTimersCommand = 1000,
|
||||
StopTimersCommand = 1001,
|
||||
ResetTimersCommand = 1002,
|
||||
StartRaceCommand = 1000,
|
||||
StopRaceCommand = 1001,
|
||||
ResetRaceCommand = 1002,
|
||||
|
||||
GetRaceStateCommand = 2000,
|
||||
GetNextStartActionCommand = 2005,
|
||||
|
@ -171,44 +140,6 @@ public:
|
|||
*/
|
||||
static const char* SOCKET_MESSAGE_END_KEY;
|
||||
|
||||
/*!
|
||||
* \brief baseStationSettings contains a string with reference to all BaseStationSetting values
|
||||
*
|
||||
* \see ScStw::BaseStationSetting
|
||||
* \see ScStw::baseStationSettingToString()
|
||||
* \see ScStw::baseStationSettingFromString()
|
||||
*/
|
||||
static const QMap<QString, ScStw::BaseStationSetting> baseStationSettings;
|
||||
|
||||
/*!
|
||||
* \brief Function to convert an int to a BaseStationSetting
|
||||
* \param i the int to convert
|
||||
* \return a BaseStationSetting
|
||||
*
|
||||
* \see ScStw::BaseStationSetting
|
||||
*/
|
||||
static BaseStationSetting baseStationSettingfromInt(int i);
|
||||
|
||||
/*!
|
||||
* \brief Function to convert a QString to a BaseStationSetting
|
||||
* \param s the string to convert
|
||||
* \return a BaseStationSetting
|
||||
*
|
||||
* \see ScStw::BaseStationSetting
|
||||
* \see ScStw::baseStationSettingToString()
|
||||
*/
|
||||
static BaseStationSetting baseStationSettingFromString(QString s);
|
||||
|
||||
/*!
|
||||
* \brief Function to convert BaseStationSetting to a QString
|
||||
* \param s the BaseStationSetting to convert
|
||||
* \return a QString
|
||||
*
|
||||
* \see ScStw::BaseStationSetting
|
||||
* \see ScStw::baseStationSettingFromString()
|
||||
*/
|
||||
Q_INVOKABLE static QString baseStationSettingToString(BaseStationSetting s);
|
||||
|
||||
/*!
|
||||
* \brief Function to convert an int to a SignalKey
|
||||
* \param i the int to convert
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <QByteArray>
|
||||
|
||||
#include "ScStw.hpp"
|
||||
#include "scstwsettings.h"
|
||||
|
||||
/*!
|
||||
* This class is used to connect and talk to the ScStw basestation.
|
||||
|
@ -59,7 +60,10 @@ public:
|
|||
*
|
||||
* \brief ScStwClient
|
||||
*/
|
||||
explicit ScStwClient(QObject *parent = nullptr);
|
||||
explicit ScStwClient(
|
||||
QObject *parent = nullptr,
|
||||
QList<ScStw::SignalKey> signalSubscriptions = {ScStw::ExtensionsChanged}
|
||||
);
|
||||
|
||||
enum State {DISCONNECTED, CONNECTING, INITIALISING, CONNECTED};
|
||||
Q_ENUM(State);
|
||||
|
@ -75,6 +79,8 @@ private:
|
|||
|
||||
QVariantList extensions;
|
||||
|
||||
QList<ScStw::SignalKey> signalSubscriptions;
|
||||
|
||||
//---general status values---//
|
||||
|
||||
// some meta data of the base station
|
||||
|
@ -139,14 +145,14 @@ public slots:
|
|||
* \param value the value to write to
|
||||
* \return the status code returned by the command
|
||||
*/
|
||||
ScStw::StatusCode writeRemoteSetting(ScStw::BaseStationSetting key, QString value);
|
||||
ScStw::StatusCode writeRemoteSetting(ScStwSettings::BaseStationSetting key, QVariant value);
|
||||
|
||||
/*!
|
||||
* \brief Function to read a setting on the base station
|
||||
* \param key the key to read from
|
||||
* \return the value of the key or "false" if the key is not found or an error occured
|
||||
*/
|
||||
QString readRemoteSetting(ScStw::BaseStationSetting key);
|
||||
QVariant readRemoteSetting(ScStwSettings::BaseStationSetting key);
|
||||
|
||||
/*! Getter fuctions */
|
||||
|
||||
|
@ -199,6 +205,8 @@ public slots:
|
|||
*/
|
||||
void setIP(QString ipAdress);
|
||||
|
||||
void addSignalSubscription(ScStw::SignalKey key);
|
||||
|
||||
private slots:
|
||||
/*!
|
||||
* \brief called when timeout timer times out
|
|
@ -1,5 +1,5 @@
|
|||
/****************************************************************************
|
||||
** ScStw Styling
|
||||
** ScStw Libraries
|
||||
** Copyright (C) 2020 Itsblue development
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
|
@ -16,15 +16,38 @@
|
|||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
****************************************************************************/
|
||||
|
||||
#include "../headers/scstwstyling.h"
|
||||
#ifndef SCSTWREMOTESETTINGS_H
|
||||
#define SCSTWREMOTESETTINGS_H
|
||||
|
||||
ScStwStyling::ScStwStyling(QObject *parent) : QObject(parent)
|
||||
#include <QObject>
|
||||
#include "scstwsettings.h"
|
||||
#include "scstwclient.h"
|
||||
#include <QMetaEnum>
|
||||
|
||||
class ScStwRemoteSettings : public ScStwSettings
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ScStwRemoteSettings(ScStwClient * scStwClient, QObject * parent = nullptr);
|
||||
|
||||
}
|
||||
enum SettingsMode {
|
||||
LOCAL,
|
||||
REMOTE
|
||||
};
|
||||
|
||||
void ScStwStyling::init(QQmlApplicationEngine *engine) {
|
||||
qmlRegisterUncreatableType<ScStwAppTheme>("de.itsblue.ScStw.Styling", 2, 0, "ScStwAppTheme", "The ScStwAppTheme has to be managed by a ScStwAppTheme manager and is therefore not creatable");
|
||||
qmlRegisterType<ScStwAppThemeManager>("de.itsblue.ScStw.Styling", 2, 0, "ScStwAppThemeManager");
|
||||
engine->addImportPath(":/lib");
|
||||
}
|
||||
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;
|
||||
|
||||
SettingsMode getMode();
|
||||
|
||||
private slots:
|
||||
void handleClientStateChange();
|
||||
void handleBaseStationSignal(ScStw::SignalKey key, QVariant data);
|
||||
};
|
||||
|
||||
#endif // SCSTWREMOTESETTINGS_H
|
|
@ -22,10 +22,18 @@
|
|||
#include <QObject>
|
||||
#ifdef ScStwLibraries_QML
|
||||
#include <QQmlApplicationEngine>
|
||||
|
||||
#ifdef ScStwLibraries_Styling
|
||||
#include "scstwappthememanager.h"
|
||||
#include "scstwapptheme.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#include "scstwtimer.h"
|
||||
#include "scstwrace.h"
|
||||
#include "scstwsettings.h"
|
||||
#ifdef ScStwLibraries_ClientLibs
|
||||
#include "scstwsetting.h"
|
||||
#include "scstwremotemonitorrace.h"
|
||||
#include "scstwclient.h"
|
||||
#endif
|
||||
|
@ -37,6 +45,12 @@ class ScStwLibraries : public QObject
|
|||
public:
|
||||
static void init();
|
||||
|
||||
#ifdef ScStwLibraries_QML
|
||||
#ifdef ScStwLibraries_Styling
|
||||
static void initStyling(QQmlApplicationEngine *engine);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
private:
|
||||
explicit ScStwLibraries(QObject *parent = nullptr);
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/****************************************************************************
|
||||
** ScStw Styling
|
||||
** ScStw Libraries
|
||||
** Copyright (C) 2020 Itsblue development
|
||||
**
|
||||
** This program is free software: you can redistribute it and/or modify
|
||||
|
@ -16,28 +16,40 @@
|
|||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef SCSTWSTYLING_H
|
||||
#define SCSTWSTYLING_H
|
||||
#ifndef SCSTWQMLSETTING_H
|
||||
#define SCSTWQMLSETTING_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QVariant>
|
||||
|
||||
#include "scstwapptheme.h"
|
||||
#include "scstwappthememanager.h"
|
||||
|
||||
|
||||
class ScStwStyling : public QObject
|
||||
class ScStwSetting : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QVariant value READ getValue WRITE setValue NOTIFY valueChanged)
|
||||
|
||||
public:
|
||||
static void init(QQmlApplicationEngine *engine);
|
||||
protected:
|
||||
explicit ScStwSetting(QObject *parent = nullptr);
|
||||
|
||||
int key;
|
||||
int keyLevel;
|
||||
bool hasToReload;
|
||||
|
||||
virtual bool writeSetting(int, int, QVariant) = 0;
|
||||
virtual QVariant readSetting(int, int) = 0;
|
||||
|
||||
private:
|
||||
explicit ScStwStyling(QObject *parent = nullptr);
|
||||
QVariant valueCache;
|
||||
|
||||
public slots:
|
||||
QVariant getValue();
|
||||
void setValue(QVariant value);
|
||||
|
||||
protected slots:
|
||||
void handleSettingChange(int key, int keyLevel, QVariant value);
|
||||
|
||||
signals:
|
||||
void valueChanged();
|
||||
|
||||
};
|
||||
|
||||
#endif // SCSTWSTYLING_H
|
||||
#endif // SCSTWQMLSETTING_H
|
126
ScStwLibraries/headers/scstwsettings.h
Normal file
|
@ -0,0 +1,126 @@
|
|||
/****************************************************************************
|
||||
** 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 SCSTWSETTINGS_H
|
||||
#define SCSTWSETTINGS_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QVariant>
|
||||
#include <QMetaEnum>
|
||||
#include <QtDebug>
|
||||
#include <QFile>
|
||||
#include <QStandardPaths>
|
||||
#include <QJsonDocument>
|
||||
#include <ScStw.hpp>
|
||||
#include <QDir>
|
||||
#include <scstwsetting.h>
|
||||
|
||||
class ScStwSettings : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ScStwSettings(QObject *parent = nullptr);
|
||||
|
||||
typedef QString(*keyToStringConverter)(int);
|
||||
|
||||
/*!
|
||||
* \brief The BaseStationSetting enum contains all settings of the base station that can be changed by a client
|
||||
*
|
||||
* \see ScStw::baseStationSettingFromInt()
|
||||
* \see ScStw::baseStationSettingToString()
|
||||
* \see ScStw::baseStationSettingFromString()
|
||||
* \see ScStw::baseStationSettings
|
||||
*/
|
||||
enum BaseStationSetting {
|
||||
InvalidSetting = -1,
|
||||
ReadySoundEnableSetting,
|
||||
ReadySoundDelaySetting,
|
||||
AtYourMarksSoundEnableSetting,
|
||||
AtYourMarksSoundDelaySetting,
|
||||
SoundVolumeSetting
|
||||
};
|
||||
Q_ENUM(BaseStationSetting)
|
||||
|
||||
enum KeyLevelEnum {
|
||||
KeyLevel = 0
|
||||
};
|
||||
Q_ENUM(KeyLevelEnum)
|
||||
|
||||
virtual QVariant readSetting(BaseStationSetting key);
|
||||
Q_INVOKABLE virtual QVariant readSetting(int key, int keyLevel);
|
||||
virtual bool writeSetting(BaseStationSetting key, QVariant value);
|
||||
Q_INVOKABLE virtual bool writeSetting(int key, int keyLevel, QVariant value);
|
||||
virtual bool setDefaultSetting(BaseStationSetting key, QVariant defaultValue);
|
||||
Q_INVOKABLE virtual bool setDefaultSetting(int key, int keyLevel, QVariant defaultValue);
|
||||
|
||||
Q_INVOKABLE ScStwSetting * getSetting(int key, int keyLevel);
|
||||
|
||||
static BaseStationSetting keyFromInt(int i) {
|
||||
QMetaEnum enumeration = QMetaEnum::fromType<BaseStationSetting>();
|
||||
return static_cast<BaseStationSetting>(enumeration.keyToValue(enumeration.valueToKey(i)));
|
||||
}
|
||||
|
||||
static QString keyToString(int key) {
|
||||
return QMetaEnum::fromType<BaseStationSetting>().valueToKey(key);
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual QVariant readSetting(QString key, int keyInt = -1, int keyLevel = -1);
|
||||
virtual bool writeSetting(QString key, QVariant value, int keyInt = -1,int keyLevel = -1);
|
||||
virtual bool setDefaultSetting(QString key, QVariant defaultValue, int keyInt,int keyLevel = -1);
|
||||
bool registerKeyLevelHandler(int keyLevel, keyToStringConverter);
|
||||
|
||||
private:
|
||||
QFile * settingsFile;
|
||||
QVariantMap settingsCache;
|
||||
|
||||
bool loadSettingsFromFile();
|
||||
|
||||
class ScStwSettingInternal: public ScStwSetting {
|
||||
public:
|
||||
ScStwSettingInternal(int key, int keyLevel, ScStwSettings*scStwSettings, QObject *parent):ScStwSetting(parent) {
|
||||
this->scStwSettings = scStwSettings;
|
||||
connect(this->scStwSettings, &ScStwSettings::settingChanged, this, &ScStwSettingInternal::handleSettingChange);
|
||||
this->key = key;
|
||||
this->keyLevel = keyLevel;
|
||||
this->handleSettingChange(-1, 0, QVariant());
|
||||
}
|
||||
protected:
|
||||
ScStwSettings *scStwSettings;
|
||||
|
||||
bool writeSetting(int key, int keyLevel, QVariant value) {
|
||||
return this->scStwSettings->writeSetting(key, keyLevel, value);
|
||||
}
|
||||
|
||||
QVariant readSetting(int key, int keyLevel) {
|
||||
return this->scStwSettings->readSetting(key, keyLevel);
|
||||
}
|
||||
};
|
||||
|
||||
QMap<int, keyToStringConverter> keyToStringConverters;
|
||||
QMap<int, QMap<int, ScStwSettingInternal*>> internalSettingHandlers;
|
||||
|
||||
private slots:
|
||||
bool writeSettingsToFile();
|
||||
|
||||
signals:
|
||||
void settingChanged(int key, int keyLevel, QVariant value);
|
||||
|
||||
};
|
||||
|
||||
#endif // SCSTWSETTINGS_H
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
@ -21,38 +21,6 @@
|
|||
const char *ScStw::SOCKET_MESSAGE_START_KEY = "<message>";
|
||||
const char *ScStw::SOCKET_MESSAGE_END_KEY = "</message>";
|
||||
|
||||
const QMap<QString, ScStw::BaseStationSetting> ScStw::baseStationSettings = {
|
||||
{"ReadySoundEnable", ScStw::ReadySoundEnableSetting},
|
||||
{"ReadySoundDelay", ScStw::ReadySoundDelaySetting},
|
||||
{"AtYourMarksSoundEnable", ScStw::AtYourMarksSoundEnableSetting},
|
||||
{"AtYourMarksSoundDelay", ScStw::AtYourMarksSoundDelaySetting},
|
||||
{"SoundVolume", ScStw::SoundVolumeSetting}
|
||||
};
|
||||
|
||||
ScStw::BaseStationSetting ScStw::baseStationSettingFromString(QString s) {
|
||||
if(!ScStw::baseStationSettings.contains(s))
|
||||
return ScStw::InvalidSetting;
|
||||
|
||||
return ScStw::baseStationSettings[s];
|
||||
}
|
||||
|
||||
QString ScStw::baseStationSettingToString(ScStw::BaseStationSetting s) {
|
||||
for(QString key: ScStw::baseStationSettings.keys()) {
|
||||
if(ScStw::baseStationSettings[key] == s)
|
||||
return key;
|
||||
}
|
||||
return "Invalid";
|
||||
}
|
||||
|
||||
ScStw::BaseStationSetting ScStw::baseStationSettingfromInt(int i) {
|
||||
bool ok;
|
||||
BaseStationSetting s = ScStw::toEnumValue<ScStw::BaseStationSetting>(i, &ok);
|
||||
if(!ok)
|
||||
return InvalidSetting;
|
||||
else
|
||||
return s;
|
||||
}
|
||||
|
||||
ScStw::SignalKey ScStw::signalKeyFromInt(int i) {
|
||||
bool ok;
|
||||
ScStw::SignalKey k = ScStw::toEnumValue<ScStw::SignalKey>(i, &ok);
|
||||
|
|
|
@ -16,15 +16,16 @@
|
|||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
****************************************************************************/
|
||||
|
||||
#include "../headers/scstwclient.h"
|
||||
#include "scstwclient.h"
|
||||
|
||||
ScStwClient * pGlobalScStwClient = nullptr;
|
||||
|
||||
ScStwClient::ScStwClient(QObject * parent) : QObject(parent)
|
||||
ScStwClient::ScStwClient(QObject * parent, QList<ScStw::SignalKey> signalSubscriptions) : QObject(parent)
|
||||
{
|
||||
this->state = DISCONNECTED;
|
||||
this->nextConnectionId = 1;
|
||||
this->extensions = QVariantList({});
|
||||
this->signalSubscriptions = signalSubscriptions;
|
||||
|
||||
this->socket = new QTcpSocket(this);
|
||||
|
||||
|
@ -72,9 +73,13 @@ bool ScStwClient::init() {
|
|||
this->setState(INITIALISING);
|
||||
this->timeoutTimer->stop();
|
||||
|
||||
QJsonArray signalSubs;
|
||||
foreach (ScStw::SignalKey key, this->signalSubscriptions) {
|
||||
signalSubs.append(key);
|
||||
}
|
||||
|
||||
// init remote session
|
||||
QJsonArray updateSubs = {ScStw::RaceStateChanged, ScStw::TimersChanged, ScStw::ExtensionsChanged, ScStw::NextStartActionChanged};
|
||||
QJsonObject sessionParams = {{"updateSubs", updateSubs}, {"init", true}, {"usingTerminationKeys", true}};
|
||||
QJsonObject sessionParams = {{"signalSubscriptions", signalSubs}, {"init", true}, {"usingTerminationKeys", true}};
|
||||
|
||||
QVariantMap initResponse = this->sendCommand(1, sessionParams, 3000, false);
|
||||
|
||||
|
@ -86,7 +91,7 @@ bool ScStwClient::init() {
|
|||
this->apiVersion = initResponse["data"].toMap()["apiVersion"].toString();
|
||||
qDebug() << "[INFO][CLIENT] base station api version is: " << this->apiVersion;
|
||||
int compareResult = ScStw::firmwareCompare(this->API_VERSION, this->apiVersion);
|
||||
qDebug() << "compare result is: " << compareResult;
|
||||
//qDebug() << "compare result is: " << compareResult;
|
||||
if( compareResult == -3 ){
|
||||
// the client version is out of date!!
|
||||
this->closeConnection();
|
||||
|
@ -392,19 +397,19 @@ void ScStwClient::handleSignal(QVariantMap data) {
|
|||
// --- helper functions ---
|
||||
// ------------------------
|
||||
|
||||
ScStw::StatusCode ScStwClient::writeRemoteSetting(ScStw::BaseStationSetting key, QString value) {
|
||||
ScStw::StatusCode ScStwClient::writeRemoteSetting(ScStwSettings::BaseStationSetting key, QVariant value) {
|
||||
QJsonArray requestData;
|
||||
requestData.append(key);
|
||||
requestData.append(value);
|
||||
requestData.append(int(key));
|
||||
requestData.append(QJsonValue::fromVariant(value));
|
||||
return ScStw::StatusCode(this->sendCommand(3000, requestData)["status"].toInt());
|
||||
}
|
||||
|
||||
QString ScStwClient::readRemoteSetting(ScStw::BaseStationSetting key) {
|
||||
QVariantMap reply = this->sendCommand(3001, key);
|
||||
QVariant ScStwClient::readRemoteSetting(ScStwSettings::BaseStationSetting key) {
|
||||
QVariantMap reply = this->sendCommand(3001, int(key));
|
||||
if(reply["status"] != 200){
|
||||
return "false";
|
||||
}
|
||||
return reply["data"].toString();
|
||||
return reply["data"];
|
||||
}
|
||||
|
||||
void ScStwClient::setIP(QString newIp){
|
||||
|
@ -452,3 +457,9 @@ void ScStwClient::setExtensions(QVariantList extensions) {
|
|||
emit this->extensionsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ScStwClient::addSignalSubscription(ScStw::SignalKey key) {
|
||||
if(!this->signalSubscriptions.contains(key))
|
||||
this->signalSubscriptions.append(key);
|
||||
}
|
|
@ -16,12 +16,16 @@
|
|||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
****************************************************************************/
|
||||
|
||||
#include "../headers/scstwremotemonitorrace.h"
|
||||
#include "scstwremotemonitorrace.h"
|
||||
|
||||
ScStwRemoteMonitorRace::ScStwRemoteMonitorRace(ScStwClient *monitorClient, QObject *parent) : ScStwRace(parent)
|
||||
{
|
||||
this->scStwClient = monitorClient;
|
||||
|
||||
this->scStwClient->addSignalSubscription(ScStw::RaceStateChanged);
|
||||
this->scStwClient->addSignalSubscription(ScStw::TimersChanged);
|
||||
this->scStwClient->addSignalSubscription(ScStw::NextStartActionChanged);
|
||||
|
||||
connect(this->scStwClient, &ScStwClient::stateChanged, this, &ScStwRemoteMonitorRace::handleClientStateChanged);
|
||||
connect(this->scStwClient, &ScStwClient::gotSignal, this, &ScStwRemoteMonitorRace::handleBaseStationSignal);
|
||||
}
|
71
ScStwLibraries/sources/client/scstwremotesettings.cpp
Normal file
|
@ -0,0 +1,71 @@
|
|||
/****************************************************************************
|
||||
** 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/>.
|
||||
****************************************************************************/
|
||||
|
||||
#include "../../headers/client/scstwremotesettings.h"
|
||||
|
||||
ScStwRemoteSettings::ScStwRemoteSettings(ScStwClient * scStwClient, QObject * parent) : ScStwSettings(parent)
|
||||
{
|
||||
this->scStwClient = scStwClient;
|
||||
this->scStwClient->addSignalSubscription(ScStw::SettingChanged);
|
||||
|
||||
connect(this->scStwClient, &ScStwClient::gotSignal, this, &ScStwRemoteSettings::handleBaseStationSignal);
|
||||
}
|
||||
|
||||
ScStwRemoteSettings::SettingsMode ScStwRemoteSettings::getMode() {
|
||||
if(this->scStwClient->getState() == ScStwClient::CONNECTED)
|
||||
return ScStwRemoteSettings::REMOTE;
|
||||
else
|
||||
return ScStwRemoteSettings::LOCAL;
|
||||
}
|
||||
|
||||
QVariant ScStwRemoteSettings::readSetting(QString key, int keyInt, int keyLevel) {
|
||||
if(this->getMode() == LOCAL || keyLevel > ScStwSettings::KeyLevel)
|
||||
return ScStwSettings::readSetting(key, keyInt, keyLevel);
|
||||
|
||||
return this->scStwClient->readRemoteSetting(ScStwSettings::BaseStationSetting(keyInt));
|
||||
}
|
||||
|
||||
bool ScStwRemoteSettings::writeSetting(QString key, QVariant value, int keyInt, int keyLevel) {
|
||||
if(this->getMode() == LOCAL || keyLevel > ScStwSettings::KeyLevel)
|
||||
return ScStwSettings::writeSetting(key, value, keyInt, keyLevel);
|
||||
|
||||
ScStw::StatusCode res = this->scStwClient->writeRemoteSetting(ScStwSettings::BaseStationSetting(keyInt), value);
|
||||
|
||||
return res == ScStw::Success;
|
||||
}
|
||||
|
||||
bool ScStwRemoteSettings::setDefaultSetting(QString key, QVariant defaultVariant, int keyInt, int keyLevel) {
|
||||
if(this->getMode() == LOCAL || keyLevel > ScStwSettings::KeyLevel)
|
||||
return ScStwSettings::setDefaultSetting(key, defaultVariant, keyInt, keyLevel);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void ScStwRemoteSettings::handleClientStateChange() {
|
||||
if(this->scStwClient->getState() == ScStwClient::DISCONNECTED)
|
||||
emit this->settingChanged(-1, 0, QVariant());
|
||||
}
|
||||
|
||||
void ScStwRemoteSettings::handleBaseStationSignal(ScStw::SignalKey key, QVariant data) {
|
||||
switch (key) {
|
||||
case ScStw::SettingChanged:
|
||||
emit this->settingChanged(data.toMap()["key"].toInt(), ScStwSettings::KeyLevel, data.toMap()["value"]);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
|
@ -26,7 +26,7 @@ ScStwLibraries::ScStwLibraries(QObject *parent) : QObject(parent)
|
|||
void ScStwLibraries::init() {
|
||||
#ifdef ScStwLibraries_QML
|
||||
qmlRegisterType<ScStw>("de.itsblue.ScStw", 2, 0, "ScStw");
|
||||
qRegisterMetaType<ScStw::BaseStationSetting>("ScStw::BaseStationSetting");
|
||||
qRegisterMetaType<ScStwSettings::BaseStationSetting>("ScStwSettings::BaseStationSetting");
|
||||
qRegisterMetaType<ScStw::SocketCommand>("ScStw::SocketCommand");
|
||||
|
||||
qmlRegisterType<ScStwRace>("de.itsblue.ScStw", 2, 0, "ScStwRace");
|
||||
|
@ -34,6 +34,19 @@ void ScStwLibraries::init() {
|
|||
|
||||
#ifdef ScStwLibraries_ClientLibs
|
||||
qmlRegisterType<ScStwClient>("de.itsblue.ScStw", 2, 0, "ScStwClient");
|
||||
qmlRegisterType<ScStwSettings>("de.itsblue.ScStw", 2, 0, "ScStwSettings");
|
||||
qmlRegisterUncreatableType<ScStwSetting>("de.itsblue.ScStw", 2, 0, "ScStwSetting", "The ScStwSetting is manage by a ScStwSettings instance and therefore not creatable");
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef ScStwLibraries_QML
|
||||
#ifdef ScStwLibraries_Styling
|
||||
void ScStwLibraries::initStyling(QQmlApplicationEngine *engine) {
|
||||
qmlRegisterUncreatableType<ScStwAppTheme>("de.itsblue.ScStw.Styling", 2, 0, "ScStwAppTheme", "The ScStwAppTheme has to be managed by a ScStwAppTheme manager and is therefore not creatable");
|
||||
qmlRegisterType<ScStwAppThemeManager>("de.itsblue.ScStw.Styling", 2, 0, "ScStwAppThemeManager");
|
||||
engine->addImportPath(":/lib");
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
|
49
ScStwLibraries/sources/scstwsetting.cpp
Normal file
|
@ -0,0 +1,49 @@
|
|||
/****************************************************************************
|
||||
** 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/>.
|
||||
****************************************************************************/
|
||||
|
||||
#include "scstwsetting.h"
|
||||
#include <QtDebug>
|
||||
|
||||
ScStwSetting::ScStwSetting(QObject *parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
QVariant ScStwSetting::getValue() {
|
||||
if(this->hasToReload) {
|
||||
this->valueCache = this->readSetting(this->key, this->keyLevel);
|
||||
this->hasToReload = false;
|
||||
}
|
||||
return this->valueCache;
|
||||
}
|
||||
void ScStwSetting::setValue(QVariant value) {
|
||||
if(value != this->valueCache) {
|
||||
this->writeSetting(this->key, this->keyLevel, value);
|
||||
}
|
||||
}
|
||||
|
||||
void ScStwSetting::handleSettingChange(int key, int keyLevel, QVariant value) {
|
||||
if(keyLevel == this->keyLevel && key == this->key) {
|
||||
this->valueCache = value;
|
||||
qDebug() << "value changed!!! key: " << key << " new value " << value;
|
||||
emit this->valueChanged();
|
||||
}
|
||||
else if(key == -1 && this->key != -1 && this->keyLevel != -1 && this->keyLevel == keyLevel) {
|
||||
this->hasToReload = true;
|
||||
emit this->valueChanged();
|
||||
}
|
||||
}
|
140
ScStwLibraries/sources/scstwsettings.cpp
Normal file
|
@ -0,0 +1,140 @@
|
|||
/****************************************************************************
|
||||
** 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/>.
|
||||
****************************************************************************/
|
||||
|
||||
#include "../headers/scstwsettings.h"
|
||||
|
||||
ScStwSettings::ScStwSettings(QObject *parent) : QObject(parent)
|
||||
{
|
||||
QString path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
|
||||
QDir dir(path);
|
||||
this->settingsFile = new QFile(path + "/settings.json");
|
||||
if(!this->settingsFile->exists())
|
||||
if(!dir.mkpath(path))
|
||||
qFatal("[FATAL] Couldn't create settings dir %s", qPrintable(path));
|
||||
|
||||
if(!this->settingsFile->open(QFile::ReadWrite))
|
||||
qFatal("[FATAL] Couldn't open settings file %s", qPrintable(path + "/settings.json"));
|
||||
|
||||
if(!this->loadSettingsFromFile() && this->settingsFile->size() != 0)
|
||||
qFatal("[FATAL] Settings file (%s) is of invalid format!", qPrintable(path + "/settings.json"));
|
||||
|
||||
connect(this, &ScStwSettings::settingChanged, this, &ScStwSettings::writeSettingsToFile);
|
||||
|
||||
this->registerKeyLevelHandler(ScStwSettings::KeyLevel, &ScStwSettings::keyToString);
|
||||
}
|
||||
|
||||
QVariant ScStwSettings::readSetting(BaseStationSetting key) {
|
||||
return this->readSetting(key, 0);
|
||||
}
|
||||
|
||||
QVariant ScStwSettings::readSetting(int key, int keyLevel) {
|
||||
if(this->keyToStringConverters.contains(keyLevel))
|
||||
return this->readSetting(this->keyToStringConverters[keyLevel](key), key, keyLevel);
|
||||
else
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
bool ScStwSettings::writeSetting(BaseStationSetting key, QVariant value) {
|
||||
return this->writeSetting(key, 0, value);
|
||||
}
|
||||
|
||||
bool ScStwSettings::writeSetting(int key, int keyLevel, QVariant value) {
|
||||
if(this->keyToStringConverters.contains(keyLevel))
|
||||
return this->writeSetting(this->keyToStringConverters[keyLevel](key), value, key, keyLevel);
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ScStwSettings::setDefaultSetting(BaseStationSetting key, QVariant defaultValue) {
|
||||
return this->setDefaultSetting(key, 0, defaultValue);
|
||||
}
|
||||
|
||||
bool ScStwSettings::setDefaultSetting(int key, int keyLevel, QVariant defaultValue) {
|
||||
if(this->keyToStringConverters.contains(keyLevel))
|
||||
return this->setDefaultSetting(this->keyToStringConverters[keyLevel](key), defaultValue, key, keyLevel);
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
QVariant ScStwSettings::readSetting(QString key, int keyInt, int keyLevel) {
|
||||
Q_UNUSED(keyInt)
|
||||
Q_UNUSED(keyLevel)
|
||||
return this->settingsCache[key];
|
||||
}
|
||||
|
||||
bool ScStwSettings::writeSetting(QString key, QVariant value, int keyInt, int keyLevel) {
|
||||
if(!this->settingsCache.contains(key))
|
||||
this->settingsCache.insert(key, value);
|
||||
else if (this->settingsCache[key] == value)
|
||||
return true;
|
||||
else
|
||||
this->settingsCache[key] = value;
|
||||
|
||||
emit this->settingChanged(keyInt, keyLevel, value);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ScStwSettings::setDefaultSetting(QString key, QVariant defaultValue, int keyInt, int keyLevel) {
|
||||
if(!this->settingsCache.contains(key))
|
||||
return this->writeSetting(key, defaultValue, keyInt, keyLevel);
|
||||
return true;
|
||||
}
|
||||
|
||||
ScStwSetting * ScStwSettings::getSetting(int key, int keyLevel) {
|
||||
if(!this->internalSettingHandlers.contains(keyLevel))
|
||||
this->internalSettingHandlers.insert(keyLevel, {});
|
||||
|
||||
if(!this->internalSettingHandlers[keyLevel].contains(key))
|
||||
this->internalSettingHandlers[keyLevel].insert(key, new ScStwSettingInternal(key, keyLevel, this, this));
|
||||
|
||||
return this->internalSettingHandlers[keyLevel][key];
|
||||
}
|
||||
|
||||
bool ScStwSettings::registerKeyLevelHandler(int keyLevel, keyToStringConverter converterFunction) {
|
||||
if(this->keyToStringConverters.contains(keyLevel))
|
||||
return false;
|
||||
|
||||
this->keyToStringConverters.insert(keyLevel, converterFunction);
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* File handling
|
||||
*/
|
||||
|
||||
bool ScStwSettings::writeSettingsToFile() {
|
||||
QJsonDocument doc = QJsonDocument::fromVariant(this->settingsCache);
|
||||
|
||||
// overwrite file
|
||||
this->settingsFile->reset();
|
||||
this->settingsFile->write(doc.toJson(QJsonDocument::Indented));
|
||||
this->settingsFile->flush();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ScStwSettings::loadSettingsFromFile() {
|
||||
QJsonDocument doc = QJsonDocument::fromJson(this->settingsFile->readAll());
|
||||
|
||||
if(doc.toVariant().type() != QVariant::Map)
|
||||
return false;
|
||||
|
||||
this->settingsCache = doc.toVariant().toMap();
|
||||
return true;
|
||||
}
|
|
@ -16,7 +16,7 @@
|
|||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
****************************************************************************/
|
||||
|
||||
#include "headers/scstwapptheme.h"
|
||||
#include "scstwapptheme.h"
|
||||
|
||||
ScStwAppTheme::ScStwAppTheme(QString name, QVariantMap colors, QVariantMap icons, QVariantMap fonts, QVariantMap images, QObject *parent) : QObject(parent)
|
||||
{
|
|
@ -16,7 +16,7 @@
|
|||
** along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
****************************************************************************/
|
||||
|
||||
#include "../headers/scstwappthememanager.h"
|
||||
#include "scstwappthememanager.h"
|
||||
|
||||
ScStwAppThemeManager::ScStwAppThemeManager(QObject *parent) : QObject(parent)
|
||||
{
|
1
ScStwStyling/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
/build/
|
|
@ -1,21 +0,0 @@
|
|||
!isEmpty(SCSTWSTYLING_LIB):error("ScStwLibraries.pri already included")
|
||||
SCSTWSTYLING_LIB = 1
|
||||
|
||||
#DEPENDS
|
||||
CONFIG(release, debug|release): {
|
||||
SCSTWSTYLING_LIB_OUTPUT_DIR="$$PWD/build/release"
|
||||
} else {
|
||||
SCSTWSTYLING_LIB_OUTPUT_DIR="$$PWD/build/debug"
|
||||
}
|
||||
|
||||
unix:LIBS += -L$$SCSTWSTYLING_LIB_OUTPUT_DIR -lScStwStyling
|
||||
|
||||
win32:LIBS += -L$$SCSTWSTYLING_LIB_OUTPUT_DIR -lScStwStyling1
|
||||
|
||||
android {
|
||||
ANDROID_EXTRA_LIBS += $$SCSTWSTYLING_LIB_OUTPUT_DIR/libScStwStyling.so
|
||||
}
|
||||
|
||||
QML_IMPORT_PATH = "$$PWD/resources/qml/lib"
|
||||
INCLUDEPATH += "$$PWD"
|
||||
INCLUDEPATH += "$$PWD"/headers
|
|
@ -1,42 +0,0 @@
|
|||
QT += gui qml
|
||||
|
||||
TEMPLATE = lib
|
||||
DEFINES += SCSTWSTYLING_LIBRARY
|
||||
|
||||
CONFIG += c++11
|
||||
|
||||
# The following define makes your compiler emit warnings if you use
|
||||
# any Qt feature that has been marked deprecated (the exact warnings
|
||||
# depend on your compiler). Please consult the documentation of the
|
||||
# deprecated API in order to know how to port your code away from it.
|
||||
DEFINES += QT_DEPRECATED_WARNINGS
|
||||
|
||||
# You can also make your code fail to compile if it uses deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
SOURCES += \
|
||||
sources/scstwapptheme.cpp \
|
||||
sources/scstwappthememanager.cpp \
|
||||
sources/scstwstyling.cpp
|
||||
|
||||
HEADERS += \
|
||||
headers/scstwapptheme.h \
|
||||
headers/scstwappthememanager.h \
|
||||
headers/scstwstyling.h
|
||||
|
||||
RESOURCES += \
|
||||
resources/qml/ScStwStylingQml.qrc \
|
||||
resources/shared/ScStwStylingShared.qrc \
|
||||
|
||||
#DEPENDS
|
||||
CONFIG(release, debug|release): {
|
||||
DESTDIR="$$PWD/build/release"
|
||||
} else {
|
||||
DESTDIR="$$PWD/build/debug"
|
||||
}
|
||||
|
||||
# Default rules for deployment.
|
||||
target.path = /usr/local/lib
|
||||
!isEmpty(target.path): INSTALLS += target
|
BIN
favicon.xcf
|
@ -1,2 +0,0 @@
|
|||
dpkg-deb --build debian
|
||||
mv debian.deb libScStwSharedLibraries.deb
|
|
@ -1,9 +0,0 @@
|
|||
Package: libScStwSharedLibraries
|
||||
Version: 1.1.0
|
||||
Section: base
|
||||
Priority: optional
|
||||
Architecture: armhf
|
||||
Depends: libqt5raspi-5.12.5 (>=1.0)
|
||||
Maintainer: Dorian Zedler <dorian@itsblue.de>
|
||||
Description: ScStwSharedLibraries
|
||||
This package contains all libraries used in the ScStw Project
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/sh
|
||||
# reload ld path
|
||||
ldconfig
|
|
@ -1 +0,0 @@
|
|||
libQt-Secret.so.1.2.0
|
|
@ -1 +0,0 @@
|
|||
libQt-Secret.so.1.2.0
|
|
@ -1 +0,0 @@
|
|||
libQt-Secret.so.1.2.0
|
|
@ -1 +0,0 @@
|
|||
libScStwLibraries.so.1.0.0
|
|
@ -1 +0,0 @@
|
|||
libScStwLibraries.so.1.0.0
|
|
@ -1 +0,0 @@
|
|||
libScStwLibraries.so.1.0.0
|
|
@ -1 +0,0 @@
|
|||
libScStwStyling.so.1.0.0
|
|
@ -1 +0,0 @@
|
|||
libScStwStyling.so.1.0.0
|
|
@ -1 +0,0 @@
|
|||
libScStwStyling.so.1.0.0
|
3
test
|
@ -1,3 +0,0 @@
|
|||
test for submodule
|
||||
test2
|
||||
test3
|