#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(true); // IMPORTANT: if you want to set this to true for testing, you have to set TABLET_MODE cmake // flag to true, otherwise this will crash 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_domainIdPreset = -1; keep domain ID ! m_partitionIdPreset = -1; m_partitionTypePreset = IDL::PartitionType::Any; // FIXME: make invalid !? 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; // m_debugFlags.insert(QStringLiteral("isTablet"), isTablet); } } // namespace LtsSessionData