From 04f99d10ac8afebe15b727a461c2b3fd93e885aa Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 13 Apr 2018 20:25:55 +0200 Subject: [PATCH] Avoid issues during shutdown in login component --- src/blackgui/components/logincomponent.cpp | 15 +++++++++++---- src/blackgui/components/logincomponent.h | 3 +++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 910f7cca2..9f5801cc2 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -385,6 +385,15 @@ namespace BlackGui ui->editor_Pilot->setUser(server.getUser(), true); } + bool CLoginComponent::hasContexts() + { + if (!sApp || !sApp->supportsContexts()) { return false; } + if (!sApp->getIContextSimulator()) { return false; } + if (!sApp->getIContextNetwork()) { return false; } + if (!sApp->getIContextOwnAircraft()) { return false; } + return true; + } + CLoginComponent::CGuiAircraftValues CLoginComponent::getAircraftValuesFromGui() const { CGuiAircraftValues values; @@ -435,9 +444,7 @@ namespace BlackGui void CLoginComponent::setOwnModelAndIcaoValues() { - Q_ASSERT(sGui->getIContextOwnAircraft()); - Q_ASSERT(sGui->getIContextSimulator()); - + if (!this->hasContexts()) { return; } CAircraftModel model; const bool simulating = sGui->getIContextSimulator() && (sGui->getIContextSimulator()->getSimulatorStatus() & ISimulator::Simulating); @@ -505,7 +512,7 @@ namespace BlackGui bool CLoginComponent::validateAircraftValues() { - const CGuiAircraftValues values = getAircraftValuesFromGui(); + const CGuiAircraftValues values = this->getAircraftValuesFromGui(); const bool validCombinedType = CAircraftIcaoCode::isValidCombinedType(values.ownAircraftCombinedType); ui->lblp_AircraftCombinedType->setTicked(validCombinedType); diff --git a/src/blackgui/components/logincomponent.h b/src/blackgui/components/logincomponent.h index 1f8716bed..2f3f05ff0 100644 --- a/src/blackgui/components/logincomponent.h +++ b/src/blackgui/components/logincomponent.h @@ -201,6 +201,9 @@ namespace BlackGui //! Tab widget (server) changed void onServerTabWidgetChanged(int index); + //! Has contexts + bool hasContexts(); + static const int OverlayMessageMs = 5000; QScopedPointer ui; QScopedPointer m_mappingWizard;