#pragma once #include #include #include #include #include #include #include #include #include #include namespace LtsSessionData { struct PartiesByExercise { int exerciseId = 0; QVector 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 &getOperatorRights() const { return m_operatorRights; } void setOperatorRights(const QSet &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 &getVisibleParties() const { return m_visibleParties; } const QVector getVisibleParties(int exerciseId) const; void setVisibleParties(const QVector &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 &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 m_operatorRights; QPixmap m_profilePicture; QVector m_visibleParties; QMap 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); } }