134 lines
4.8 KiB
C++
Executable File
134 lines
4.8 KiB
C++
Executable File
#pragma once
|
|
|
|
#include <LtsSession/ltssessiondata_export.h>
|
|
#include <ProjectConfig/project_defines.h>
|
|
#include <LtsAppDescriptor/lts_app_descriptor.h>
|
|
|
|
#include <QtCore/qglobal.h>
|
|
#include <QPixmap>
|
|
#include <QObject>
|
|
#include <QUrl>
|
|
#include <QSet>
|
|
#include <QVariant>
|
|
#include <QMap>
|
|
|
|
|
|
namespace LtsSessionData
|
|
{
|
|
|
|
struct PartiesByExercise
|
|
{
|
|
int exerciseId = 0;
|
|
QVector<int> visibleParties;
|
|
};
|
|
|
|
class LTSSESSIONDATA_EXPORT LtsSessionData
|
|
{
|
|
public:
|
|
static LtsSessionData *getInstance();
|
|
|
|
|
|
const QString &getOperatorNamePreset() const { return m_operatorNamePreset; }
|
|
const QString &getPasswordPreset() const { return m_passwordPreset; }
|
|
void setOperatorPreset(const QString &operatorName, const QString &password) { m_operatorNamePreset = operatorName; m_passwordPreset = password; }
|
|
|
|
int getDomainIdPreset() const { return m_domainIdPreset; }
|
|
void setDomainIdPreset(int domainIdPreset) { m_domainIdPreset = domainIdPreset; }
|
|
|
|
QStringList getQosFile() const {return m_qosFile; }
|
|
void setQosFile(const QStringList &qosFile) { m_qosFile = qosFile; }
|
|
|
|
int getPartitionIdPreset() const { return m_partitionIdPreset; }
|
|
IDL::PartitionType getPartitionTypePreset() const { return m_partitionTypePreset; }
|
|
void setPartitionPreset(const int partitionId, IDL::PartitionType partitionType) { m_partitionIdPreset = partitionId; m_partitionTypePreset = partitionType; }
|
|
|
|
|
|
|
|
void removePresets();
|
|
|
|
|
|
|
|
int getScriptId() const { return m_scriptId; }
|
|
void setScriptId(int scriptId) { m_scriptId = scriptId; }
|
|
|
|
int getOperatorId() const { return m_operatorId; }
|
|
void setOperatorId(int operatorId) { m_operatorId = operatorId; }
|
|
|
|
const QString &getOperatorName() const { return m_operatorName; }
|
|
void setOperatorName(const QString &operatorName) { m_operatorName = operatorName; }
|
|
|
|
const QSet<int> &getOperatorRights() const { return m_operatorRights; }
|
|
void setOperatorRights(const QSet<int> &operatorRights) { m_operatorRights = operatorRights; }
|
|
bool hasOperatorRight(int operatorRight) const;
|
|
|
|
const QPixmap &getProfilePicture() const { return m_profilePicture; }
|
|
void setProfilePicture(const QPixmap &profilePicture) { m_profilePicture = profilePicture; }
|
|
|
|
bool isVisibleParty(int exerciseId, int partyId) const;
|
|
const QVector<PartiesByExercise> &getVisibleParties() const { return m_visibleParties; }
|
|
const QVector<int> getVisibleParties(int exerciseId) const;
|
|
void setVisibleParties(const QVector<PartiesByExercise> &visibleParties) { m_visibleParties = visibleParties; }
|
|
|
|
QUrl getTcpConnectionUrl() const { return m_tcpConnectionUrl; }
|
|
void setTcpConnectionUrl(const QUrl &tcpConnectionUrl) { m_tcpConnectionUrl = tcpConnectionUrl; }
|
|
|
|
bool getShowTerminalWindow() const { return m_showTerminalWindow; }
|
|
void setShowTerminalWindow(bool showTerminalWindow) { m_showTerminalWindow = showTerminalWindow; }
|
|
|
|
LtsAppDescriptor::App getRequestedAppId() const { return m_requestedAppId; }
|
|
void setRequestedAppId(LtsAppDescriptor::App requestedAppId) { m_requestedAppId = requestedAppId; }
|
|
|
|
int getWorkstationId() const { return m_workstationId; }
|
|
void setWorkstationId(int workstationId) { m_workstationId = workstationId; }
|
|
|
|
bool isTablet() const { return m_isTablet; }
|
|
void setAsTablet(bool isTablet = true);
|
|
|
|
bool getPlaceScriptScreens() const { return m_placeScriptScreens; }
|
|
void setPlaceScriptScreens(bool placeScriptScreens) { m_placeScriptScreens = placeScriptScreens; }
|
|
|
|
bool hasDebugFlag(const QString &debugFlag) const { return m_debugFlags.constEnd() != m_debugFlags.constFind(debugFlag); }
|
|
QVariant debugFlagValue(const QString &debugFlag) const { QVariant result; auto it = m_debugFlags.constFind(debugFlag); if (it != m_debugFlags.constEnd()) result = *it; return result; }
|
|
void setDebugFlagValue(const QString &debugFlag, const QVariant &value) { m_debugFlags.insert(debugFlag, value); }
|
|
const QMap<QString, QVariant> &debugFlags() const { return m_debugFlags; }
|
|
void removeDebugFlag(const QString &debugFlag) { m_debugFlags.remove(debugFlag); }
|
|
|
|
void clear();
|
|
void loggedOut();
|
|
|
|
private:
|
|
LtsSessionData();
|
|
~LtsSessionData() = default;
|
|
friend struct LtsSessionDataHandler;
|
|
|
|
|
|
QString m_operatorNamePreset;
|
|
QString m_passwordPreset;
|
|
QStringList m_qosFile;
|
|
QUrl m_tcpConnectionUrl;
|
|
int m_domainIdPreset;
|
|
int m_partitionIdPreset;
|
|
IDL::PartitionType m_partitionTypePreset;
|
|
|
|
int m_operatorId;
|
|
int m_scriptId;
|
|
QString m_operatorName;
|
|
bool m_showTerminalWindow;
|
|
QSet<int> m_operatorRights;
|
|
QPixmap m_profilePicture;
|
|
QVector<PartiesByExercise> m_visibleParties;
|
|
QMap<QString, QVariant> m_debugFlags;
|
|
LtsAppDescriptor::App m_requestedAppId;
|
|
int m_workstationId;
|
|
bool m_isTablet;
|
|
bool m_placeScriptScreens;
|
|
};
|
|
|
|
static inline bool hasOperatorRight(int operatorRight)
|
|
{
|
|
auto instance = LtsSessionData::getInstance();
|
|
return instance->hasOperatorRight(operatorRight);
|
|
}
|
|
|
|
}
|