diff --git a/src/blackgui/components/loginadvcomponent.cpp b/src/blackgui/components/loginadvcomponent.cpp index e0ca5570c..41ec07fcc 100644 --- a/src/blackgui/components/loginadvcomponent.cpp +++ b/src/blackgui/components/loginadvcomponent.cpp @@ -51,6 +51,7 @@ #include #include #include +#include using namespace BlackConfig; using namespace BlackMisc; @@ -90,6 +91,13 @@ namespace BlackGui this->setForceSmall(true); this->showKillButton(false); + // auto logoff + // we decided to make it difficult for users to disable it + if (!CBuildConfig::isLocalDeveloperDebugBuild()) + { + ui->cb_AutoLogoff->setChecked(true); + } + // Stored data this->loadRememberedUserData(); @@ -109,42 +117,9 @@ namespace BlackGui CLoginAdvComponent::~CLoginAdvComponent() { } - void CLoginAdvComponent::mainInfoAreaChanged(const QWidget *currentWidget) + void CLoginAdvComponent::setAutoLogoff(bool autoLogoff) { - if (!sGui || sGui->isShuttingDown()) { return; } - if (currentWidget != this && currentWidget != this->parentWidget()) - { - // const bool wasVisible = m_visible; - m_visible = false; - - /** T639 - if (!wasVisible) - { - // set own values, and send signals - this->setOwnModelAndIcaoValues(); - } - **/ - } - else - { - if (m_visible) - { - // already visible: - // re-trigger! treat as same as OK - this->toggleNetworkConnection(); - } - else - { - m_visible = true; - ui->comp_OwnAircraft->setOwnModelAndIcaoValues(); - } - } - - // we decided to make it difficult for users to disable it - if (!CBuildConfig::isLocalDeveloperDebugBuild()) - { - ui->cb_AutoLogoff->setChecked(true); - } + ui->cb_AutoLogoff->setChecked(autoLogoff); } void CLoginAdvComponent::loginCancelled() @@ -184,6 +159,7 @@ namespace BlackGui } // sync values with GUI values + const COwnAircraftComponent::CGuiAircraftValues values = ui->comp_OwnAircraft->getAircraftValuesFromGui(); this->updateOwnAircraftCallsignAndPilotFromGuiValues(); ui->comp_OwnAircraft->updateOwnAircaftIcaoValuesFromGuiValues(); @@ -225,7 +201,7 @@ namespace BlackGui sGui->getIContextAudio()->setVoiceSetup(currentServer.getVoiceSetup()); } - msg = sGui->getIContextNetwork()->connectToNetwork(currentServer, mode); + msg = sGui->getIContextNetwork()->connectToNetwork(currentServer, values.ownLiverySend, values.useLivery, values.ownAircraftModelStringSend, values.useModelString, mode); if (msg.isSuccess()) { Q_ASSERT_X(currentServer.isValidForLogin(), Q_FUNC_INFO, "invalid server"); @@ -351,44 +327,6 @@ namespace BlackGui emit this->requestLoginPage(); } - /** - void CLoginAdvComponent::onSimulatorModelChanged(const CAircraftModel &model) - { - if (!sGui || !sGui->getIContextNetwork() || sApp->isShuttingDown()) { return; } - const bool isNetworkConnected = sGui && sGui->getIContextNetwork()->isConnected(); - if (isNetworkConnected) { return; } - - // update with latest DB data - CAircraftModel reverseModel(model); - if (sGui->hasWebDataServices()) - { - reverseModel = sGui->getWebDataServices()->getModelForModelString(model.getModelString()); - if (!reverseModel.isLoadedFromDb()) { reverseModel = model; } // reset if not found - } - - const QString modelStr(reverseModel.hasModelString() ? reverseModel.getModelString() : ""); - if (!reverseModel.hasModelString()) - { - CLogMessage(this).validationInfo(u"Invalid lookup for '%1' successful: %2") << modelStr << reverseModel.toQString(); - CLogMessage(this).validationInfo(u"Hint: Are you using the emulated driver? Set a model if so!"); - return; - } - this->setOwnModelAndIcaoValues(reverseModel); - - // open dialog for model mapping - if (m_autoPopupWizard && !reverseModel.isLoadedFromDb()) - { - this->mappingWizard(); - } - - // check state of own aircraft - this->updateOwnAircraftCallsignAndPilotFromGuiValues(); - - // let others know data changed - m_changedLoginDataDigestSignal.inputSignal(); - } - **/ - bool CLoginAdvComponent::updateOwnAircraftCallsignAndPilotFromGuiValues() { if (!this->hasValidContexts()) { return false; } diff --git a/src/blackgui/components/loginadvcomponent.h b/src/blackgui/components/loginadvcomponent.h index 0012df2d8..53bb5705e 100644 --- a/src/blackgui/components/loginadvcomponent.h +++ b/src/blackgui/components/loginadvcomponent.h @@ -67,8 +67,11 @@ namespace BlackGui //! Automatically popup void setAutoPopupWizad(bool autoPopup); + //! Set auto logoff + void setAutoLogoff(bool autoLogoff); + //! Main info area changed - void mainInfoAreaChanged(const QWidget *currentWidget); + // void mainInfoAreaChanged(const QWidget *currentWidget); //! Login requested void toggleNetworkConnection(); @@ -150,7 +153,6 @@ namespace BlackGui QScopedPointer ui; BlackMisc::CDigestSignal m_changedLoginDataDigestSignal { this, &CLoginAdvComponent::loginDataChangedDigest, 1500, 10 }; - bool m_visible = false; //!< is this component selected? BlackCore::Data::CNetworkSetup m_networkSetup; //!< servers last used }; } // namespace diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 0ecf98f19..f2dd31df9 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -325,7 +325,7 @@ namespace BlackGui sGui->getIContextAudio()->setVoiceSetup(currentServer.getVoiceSetup()); } - msg = sGui->getIContextNetwork()->connectToNetwork(currentServer, mode); + msg = sGui->getIContextNetwork()->connectToNetwork(currentServer, {}, true, {}, true, mode); if (msg.isSuccess()) { Q_ASSERT_X(currentServer.isValidForLogin(), Q_FUNC_INFO, "invalid server"); diff --git a/src/blackgui/components/logindialog.cpp b/src/blackgui/components/logindialog.cpp index bd2366028..4c7e20195 100644 --- a/src/blackgui/components/logindialog.cpp +++ b/src/blackgui/components/logindialog.cpp @@ -28,6 +28,11 @@ namespace BlackGui CLoginDialog::~CLoginDialog() { } + void CLoginDialog::setAutoLogoff(bool logoff) + { + ui->comp_LoginComponent->setAutoLogoff(logoff); + } + void CLoginDialog::onLoginOrLogoffCancelled() { this->reject(); diff --git a/src/blackgui/components/logindialog.h b/src/blackgui/components/logindialog.h index 13158e94d..51cd5ad3f 100644 --- a/src/blackgui/components/logindialog.h +++ b/src/blackgui/components/logindialog.h @@ -33,6 +33,9 @@ namespace BlackGui //! Destructor virtual ~CLoginDialog() override; + //! Set auto logoff + void setAutoLogoff(bool logoff); + signals: //! Request server settings void requestNetworkSettings(); diff --git a/src/blackgui/components/logindialog.ui b/src/blackgui/components/logindialog.ui index dbc9ce6c1..eb7fa01c7 100644 --- a/src/blackgui/components/logindialog.ui +++ b/src/blackgui/components/logindialog.ui @@ -7,19 +7,19 @@ 0 0 350 - 500 + 550 350 - 500 + 550 Login dialog - + diff --git a/src/swiftguistandard/swiftguistd.cpp b/src/swiftguistandard/swiftguistd.cpp index 60995581b..79d521b20 100644 --- a/src/swiftguistandard/swiftguistd.cpp +++ b/src/swiftguistandard/swiftguistd.cpp @@ -6,6 +6,8 @@ * or distributed except according to the terms contained in the LICENSE file. */ +#include "ui_swiftguistd.h" + #include "blackgui/components/infobarstatuscomponent.h" #include "blackgui/components/logcomponent.h" #include "blackgui/components/dbloaddatadialog.h" @@ -28,7 +30,7 @@ #include "blackmisc/logcategorylist.h" #include "blackmisc/logmessage.h" #include "blackmisc/threadutils.h" -#include "ui_swiftguistd.h" +#include "blackconfig/buildconfig.h" #include "swiftguistd.h" #include @@ -57,9 +59,9 @@ namespace BlackMisc { class CIdentifiable; } using namespace BlackCore; using namespace BlackCore::Context; -using namespace BlackMisc; using namespace BlackGui; using namespace BlackGui::Components; +using namespace BlackMisc; using namespace BlackMisc::Network; using namespace BlackMisc::Aviation; using namespace BlackMisc::PhysicalQuantities; @@ -67,6 +69,7 @@ using namespace BlackMisc::Geo; using namespace BlackMisc::Audio; using namespace BlackMisc::Input; using namespace BlackMisc::Simulation; +using namespace BlackConfig; // Constructor SwiftGuiStd::SwiftGuiStd(BlackGui::CEnableForFramelessWindow::WindowMode windowMode, QWidget *parent) : @@ -255,6 +258,10 @@ void SwiftGuiStd::loginRequested() { if (!m_loginDialog) { m_loginDialog.reset(new CLoginDialog(this)); } connect(m_loginDialog.data(), &CLoginDialog::requestNetworkSettings, this, &SwiftGuiStd::displayNetworkSettings); + if (!CBuildConfig::isLocalDeveloperDebugBuild()) + { + m_loginDialog->setAutoLogoff(true); + } m_loginDialog->show(); } else