From 7946fd8d1811140ee3fb701cef3701dc793ed65a Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 2 Sep 2017 19:48:23 +0200 Subject: [PATCH] Ref T146, improved login component * logoff countdown can be stopped * login mode (normal, obs, ..) shown --- src/blackgui/components/logincomponent.cpp | 24 +++++- src/blackgui/components/logincomponent.h | 8 +- src/blackgui/components/logincomponent.ui | 97 ++++++++++++++-------- 3 files changed, 92 insertions(+), 37 deletions(-) diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 1a4643755..595e67db4 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -140,10 +140,14 @@ namespace BlackGui connect(sGui->getIContextSimulator(), &IContextSimulator::ownAircraftModelChanged, this, &CLoginComponent::simulatorModelChanged); } - // server GUI element + // server and UI elements when in disconnect ui->frp_CurrentServer->setReadOnly(true); ui->frp_CurrentServer->showPasswordField(false); + ui->gbp_LoginWithMode->setReadOnly(true); + ui->tb_Timeout->setIcon(m_iconPause); + connect(ui->tb_Timeout, &QToolButton::clicked, this, &CLoginComponent::toggleTimeout); + // web service data connect(sGui->getIContextNetwork(), &IContextNetwork::webServiceDataRead, this, &CLoginComponent::onWebServiceDataRead); // inital setup, if data already available @@ -243,7 +247,9 @@ namespace BlackGui this->updateOwnAircaftIcaoValuesFromGuiValues(); // Login mode - INetwork::LoginMode mode = ui->gbp_LoginMode->getLoginMode(); + const INetwork::LoginMode mode = ui->gbp_LoginMode->getLoginMode(); + ui->gbp_LoginWithMode->setLoginMode(mode); + ui->gbp_LoginWithMode->setReadOnly(true); // need to be set after each change switch (mode) { case INetwork::LoginStealth: @@ -626,6 +632,20 @@ namespace BlackGui this->m_mappingWizard->show(); } + void CLoginComponent::toggleTimeout() + { + if (m_logoffCountdownTimer->isActive()) + { + m_logoffCountdownTimer->stop(); + ui->tb_Timeout->setIcon(m_iconPlay); + } + else + { + m_logoffCountdownTimer->start(); + ui->tb_Timeout->setIcon(m_iconPause); + } + } + void CLoginComponent::initCompleters(CEntityFlags::Entity entity) { // completers where possible diff --git a/src/blackgui/components/logincomponent.h b/src/blackgui/components/logincomponent.h index d0477ce6d..841cdd68e 100644 --- a/src/blackgui/components/logincomponent.h +++ b/src/blackgui/components/logincomponent.h @@ -26,6 +26,7 @@ #include "blackmisc/datacache.h" #include +#include #include #include #include @@ -122,6 +123,9 @@ namespace BlackGui //! Launch mapping wizard void mappingWizard(); + //! Pause/Continue timeout + void toggleTimeout(); + //! GUI aircraft values, formatted struct CGuiAircraftValues { @@ -206,8 +210,10 @@ namespace BlackGui BlackMisc::CDigestSignal m_changedLoginDataDigestSignal { this, &CLoginComponent::loginDataChangedDigest, 1500, 10 }; bool m_autoPopupWizard = false; //!< automatically popup wizard if mapping is needed bool m_visible = false; //!< is this component selected? + QIcon m_iconPlay {":/famfamfam/icons/famfamfam/icons/silk/control_play_blue.png"}; + QIcon m_iconPause {":/famfamfam/icons/famfamfam/icons/silk/control_pause_blue.png"}; const int LogoffIntervalSeconds = 20; //!< time before logoff - QTimer *m_logoffCountdownTimer { nullptr }; //!< timer used logoff countdown + QTimer *m_logoffCountdownTimer { nullptr }; //!< timer for logoff countdown BlackMisc::CSettingReadOnly m_otherTrafficNetworkServers { this, &CLoginComponent::reloadSettings }; BlackMisc::CSetting m_currentAircraftModel { this }; //!< current settings of aircraft BlackMisc::CData m_currentVatsimServer { this }; //!< cache for current VATSIM server diff --git a/src/blackgui/components/logincomponent.ui b/src/blackgui/components/logincomponent.ui index ddb0bfaa1..57038dcde 100644 --- a/src/blackgui/components/logincomponent.ui +++ b/src/blackgui/components/logincomponent.ui @@ -6,34 +6,28 @@ 0 0 - 384 - 576 + 348 + 625 Login component - - QFrame::StyledPanel - - - QFrame::Raised - - + 6 - 2 + 1 - 2 + 1 - 2 + 1 - 2 + 1 @@ -65,10 +59,7 @@ - - - - false + Login mode @@ -583,21 +574,14 @@ QFrame::Raised - + Your aircraft: - - - - true - - - - + Login since: @@ -605,12 +589,26 @@ + + + true + + + + true + + + + Login mode + + + @@ -618,16 +616,47 @@ - - - 10 + + + QFrame::StyledPanel - - 10 - - - %v + + QFrame::Raised + + + 1 + + + 1 + + + 1 + + + 1 + + + + + 10 + + + 10 + + + %v + + + + + + + ... + + + +