From 42af51034262e48cee239a688aec31d2f85d71d4 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 5 Dec 2018 03:37:36 +0100 Subject: [PATCH] Check for minimum mapping version * check functions in gui application/application * check for instance mapping wizard * check on mapping tool's stashing component --- src/blackcore/application.cpp | 5 ++++ src/blackcore/application.h | 3 +++ src/blackgui/components/dbstashcomponent.cpp | 1 + src/blackgui/components/logincomponent.cpp | 3 +++ src/blackgui/components/logincomponent.ui | 25 +++++++++++++------- src/blackgui/guiapplication.cpp | 10 ++++++++ src/blackgui/guiapplication.h | 3 +++ 7 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/blackcore/application.cpp b/src/blackcore/application.cpp index 220a4d0f6..13649802f 100644 --- a/src/blackcore/application.cpp +++ b/src/blackcore/application.cpp @@ -457,6 +457,11 @@ namespace BlackCore return m_setupReader->asyncLoad(); } + bool CApplication::hasMinimumMappingVersion() const + { + return (this->getGlobalSetup().isSwiftVersionMinimumMappingVersion()); + } + bool CApplication::hasWebDataServices() const { if (this->isShuttingDown()) { return false; } // service will not survive for long diff --git a/src/blackcore/application.h b/src/blackcore/application.h index 9e073cf5e..ebf60ca7c 100644 --- a/src/blackcore/application.h +++ b/src/blackcore/application.h @@ -382,6 +382,9 @@ namespace BlackCore //! Reload setup and version BlackMisc::CStatusMessageList requestReloadOfSetupAndVersion(); + //! Minimum mapping version check + virtual bool hasMinimumMappingVersion() const; + //! Read and wait for setup //! \sa waitForSetup BlackMisc::CStatusMessageList synchronizeSetup(int timeoutMs = BlackMisc::Network::CNetworkUtils::getLongTimeoutMs()); diff --git a/src/blackgui/components/dbstashcomponent.cpp b/src/blackgui/components/dbstashcomponent.cpp index d17dd3be8..f9df172ad 100644 --- a/src/blackgui/components/dbstashcomponent.cpp +++ b/src/blackgui/components/dbstashcomponent.cpp @@ -269,6 +269,7 @@ namespace BlackGui { if (!sGui || sGui->isShuttingDown() || !sGui->hasWebDataServices()) { return; } if (ui->tvp_StashAircraftModels->isEmpty()) { return; } + if (!sGui->hasMinimumMappingVersion()) { return; } // get models right here, because later steps might affect selection const CAircraftModelList models(getSelectedOrAllModels()); diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 2fabcec73..b4e93f906 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -38,6 +38,7 @@ #include "blackconfig/buildconfig.h" #include +#include #include #include #include @@ -693,6 +694,8 @@ namespace BlackGui void CLoginComponent::mappingWizard() { if (!sGui || !sGui->getIContextOwnAircraft() || sGui->isShuttingDown()) { return; } + if (!sGui->hasMinimumMappingVersion()) { return; } + if (!m_mappingWizard) { m_mappingWizard.reset(new CDbQuickMappingWizard(this)); diff --git a/src/blackgui/components/logincomponent.ui b/src/blackgui/components/logincomponent.ui index 6588536ef..d14c32977 100644 --- a/src/blackgui/components/logincomponent.ui +++ b/src/blackgui/components/logincomponent.ui @@ -378,6 +378,9 @@ 50 + + Qt::StrongFocus + @@ -845,6 +848,11 @@ + + BlackGui::CTickLabel + QLabel +
blackgui/ticklabel.h
+
BlackGui::Editors::CServerForm QFrame @@ -869,11 +877,6 @@
blackgui/components/modelmatcherlogenable.h
1
- - BlackGui::CTickLabel - QLabel -
blackgui/ticklabel.h
-
BlackGui::Components::CDbAircraftIcaoSelectorComponent QFrame @@ -908,10 +911,8 @@ tw_Network comp_VatsimServers pb_OverrideCredentialsVatsim - comp_OtherServers - pb_OtherServersGotoSettings - pb_OverrideCredentialsOtherServers - sa_FsdDetails + tw_Details + form_Pilot le_SimulatorModel tb_SimulatorIcaoReverseLookup tb_MappingWizard @@ -920,11 +921,17 @@ le_AircraftCombinedType selector_AirlineIcao le_LoginCallsign + le_LoginHomeBase le_LoginAsAircaft le_LoginSince tb_Timeout + cb_AutoLogoff pb_Ok pb_Cancel + comp_OtherServers + pb_OtherServersGotoSettings + pb_OverrideCredentialsOtherServers + sa_FsdDetails diff --git a/src/blackgui/guiapplication.cpp b/src/blackgui/guiapplication.cpp index aa09f6720..ec376cc5c 100644 --- a/src/blackgui/guiapplication.cpp +++ b/src/blackgui/guiapplication.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -205,6 +206,15 @@ namespace BlackGui CGuiUtility::registerMainApplicationWidget(mainWidget); } + bool CGuiApplication::hasMinimumMappingVersion() const + { + if (this->getGlobalSetup().isSwiftVersionMinimumMappingVersion()) { return true; } + + const QString msg = QStringLiteral("Your are using swift version: '%1'.\nCreating mappings requires at least '%2'.").arg(CBuildConfig::getVersionString(), this->getGlobalSetup().getMappingMinimumVersionString()); + QMessageBox::warning(this->mainApplicationWindow(), "Version check", msg, QMessageBox::Close); + return false; + } + QMainWindow *CGuiApplication::mainApplicationWindow() { return qobject_cast(CGuiApplication::mainApplicationWidget()); diff --git a/src/blackgui/guiapplication.h b/src/blackgui/guiapplication.h index 88bcd25af..d8a64a398 100644 --- a/src/blackgui/guiapplication.h +++ b/src/blackgui/guiapplication.h @@ -229,6 +229,9 @@ namespace BlackGui //! \copydoc BlackGui::CGuiUtility::registerMainApplicationWidget void registerMainApplicationWidget(QWidget *mainWidget); + //! \copydoc BlackCore::CApplication::hasMinimumMappingVersion + virtual bool hasMinimumMappingVersion() const override; + //! Main application window static QMainWindow *mainApplicationWindow();