#include "lts_session_data.h" namespace LtsSessionData { struct LtsSessionDataHandler { LtsSessionData ltsSessionData; }; Q_GLOBAL_STATIC(LtsSessionDataHandler, s_ltsSessionData) LtsSessionData::LtsSessionData() : m_domainIdPreset(-1) , m_partitionIdPreset(-1) , m_partitionTypePreset(IDL::PartitionType::Any) , m_operatorId(-1) , m_scriptId(0) , m_showTerminalWindow(false) , m_requestedAppId(LtsAppDescriptor::App::Login) , m_workstationId(-1) , m_isTablet(false) , m_placeScriptScreens(false) { setAsTablet(false); clear(); } LtsSessionData *LtsSessionData::getInstance() { return &s_ltsSessionData->ltsSessionData; } void LtsSessionData::loggedOut() { m_operatorId = -1; m_operatorRights.clear(); m_operatorName.clear(); m_showTerminalWindow = false; m_profilePicture = QPixmap(); m_visibleParties.clear(); } void LtsSessionData::removePresets() { m_partitionIdPreset = -1; m_partitionTypePreset = IDL::PartitionType::Any; m_operatorNamePreset.clear(); m_passwordPreset.clear(); } void LtsSessionData::clear() { removePresets(); loggedOut(); } bool LtsSessionData::hasOperatorRight(int operatorRight) const { if (operatorRight == 0) return true; if (m_operatorRights.contains(operatorRight)) return true; return m_operatorRights.contains(-1); } bool LtsSessionData::isVisibleParty(int exerciseId, int partyId) const { for (const auto &visibleParties : m_visibleParties) { if (visibleParties.exerciseId != exerciseId) continue; return visibleParties.visibleParties.contains(partyId); } return false; } const QVector LtsSessionData::getVisibleParties(int exerciseId) const { for(auto visibleParties : m_visibleParties) { if (visibleParties.exerciseId == exerciseId) return visibleParties.visibleParties; } return {}; } void LtsSessionData::setAsTablet(bool isTablet) { m_isTablet = isTablet; } }