From 583a5bfb285759e3e1db97bacb1417111d9e665e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 23 Jan 2019 17:10:00 +0100 Subject: [PATCH] Ref T515, mapping component improvements * allow to re-display validation dialog * highlight disabled models --- .../aircraftmodelvalidationcomponent.cpp | 2 + src/blackgui/components/mappingcomponent.cpp | 13 +- src/blackgui/components/mappingcomponent.h | 3 + src/blackgui/components/mappingcomponent.ui | 225 +++++++++--------- src/swiftguistandard/swiftguistd.cpp | 16 +- src/swiftguistandard/swiftguistd.h | 3 + src/swiftguistandard/swiftguistdinit.cpp | 7 +- 7 files changed, 147 insertions(+), 122 deletions(-) diff --git a/src/blackgui/components/aircraftmodelvalidationcomponent.cpp b/src/blackgui/components/aircraftmodelvalidationcomponent.cpp index 916d8db73..882eb2ba1 100644 --- a/src/blackgui/components/aircraftmodelvalidationcomponent.cpp +++ b/src/blackgui/components/aircraftmodelvalidationcomponent.cpp @@ -25,6 +25,8 @@ namespace BlackGui ui(new Ui::CAircraftModelValidationComponent) { ui->setupUi(this); + const CAircraftMatcherSetup setup = m_matchingSettings.get(); + ui->cb_EnableStartupCheck->setChecked(setup.doVerificationAtStartup()); connect(ui->cb_EnableStartupCheck, &QCheckBox::toggled, this, &CAircraftModelValidationComponent::onCheckAtStartupChanged); connect(ui->pb_TempDisableInvalid, &QPushButton::released, this, &CAircraftModelValidationComponent::onButtonClicked); } diff --git a/src/blackgui/components/mappingcomponent.cpp b/src/blackgui/components/mappingcomponent.cpp index c3ac5b7ba..f6d4e9628 100644 --- a/src/blackgui/components/mappingcomponent.cpp +++ b/src/blackgui/components/mappingcomponent.cpp @@ -102,6 +102,7 @@ namespace BlackGui connect(ui->pb_ResetAircraft, &QPushButton::clicked, this, &CMappingComponent::onResetAircraft); connect(ui->pb_LoadModels, &QPushButton::clicked, this, &CMappingComponent::onModelsUpdateRequested); connect(ui->pb_DoMatchingAgain, &QPushButton::clicked, this, &CMappingComponent::doMatchingsAgain); + connect(ui->pb_ValidateModelSet, &QPushButton::clicked, this, &CMappingComponent::requestValidationDialog); m_currentMappingsViewDelegate = new CCheckBoxDelegate(":/diagona/icons/diagona/icons/tick.png", ":/diagona/icons/diagona/icons/cross.png", this); ui->tvp_RenderedAircraft->setItemDelegateForColumn(0, m_currentMappingsViewDelegate); @@ -411,8 +412,15 @@ namespace BlackGui void CMappingComponent::onModelsUpdateRequested() { - Q_ASSERT_X(sGui, Q_FUNC_INFO, "Need sGui"); - const CAircraftModelList modelSet(sGui->getIContextSimulator()->getModelSet()); + if (!sGui || sGui->isShuttingDown() || !sGui->getIContextSimulator()) { return; } + CAircraftModelList modelSet(sGui->getIContextSimulator()->getModelSet()); + + const CAircraftModelList disabledModels = sGui->getIContextSimulator()->getDisabledModelsForMatching(); + const bool hasDisabledModels = !disabledModels.isEmpty(); + + ui->tvp_AircraftModels->setHighlightColor(Qt::red); + ui->tvp_AircraftModels->setHighlight(hasDisabledModels); + ui->tvp_AircraftModels->setHighlightModels(disabledModels); ui->tvp_AircraftModels->updateContainerMaybeAsync(modelSet); ui->tw_SpecializedViews->setCurrentIndex(TabAircraftModels); } @@ -425,6 +433,7 @@ namespace BlackGui sGui->getIContextSimulator()->disableModelsForMatching(models, true); const CStatusMessage m = CLogMessage(this).info(u"Disabled %1 model(s): %2") << models.size() << models.getCallsignsAsString(", ", true); this->showOverlayHTMLMessage(m, OverlayMessageMs); + this->onModelsUpdateRequested(); } } diff --git a/src/blackgui/components/mappingcomponent.h b/src/blackgui/components/mappingcomponent.h index b5edb3a11..b7cae116c 100644 --- a/src/blackgui/components/mappingcomponent.h +++ b/src/blackgui/components/mappingcomponent.h @@ -90,6 +90,9 @@ namespace BlackGui //! Request a text message void requestTextMessageWidget(const BlackMisc::Aviation::CCallsign &callsign); + //! Request the validation dialog + void requestValidationDialog(); + private: //! Aircraft models available void onModelSetChanged(const BlackMisc::Simulation::CSimulatorInfo &dummy); diff --git a/src/blackgui/components/mappingcomponent.ui b/src/blackgui/components/mappingcomponent.ui index 3b5fe5c08..7fd79041d 100644 --- a/src/blackgui/components/mappingcomponent.ui +++ b/src/blackgui/components/mappingcomponent.ui @@ -157,7 +157,7 @@ 80 - + 3 @@ -170,7 +170,44 @@ 3 - + + + + aircraft enabled + + + Enbl. + + + + + + + do all matchings again + + + re-match + + + + + + + + 0 + 20 + + + + + + + + Icon + + + + reset model by callsign @@ -184,110 +221,6 @@ - - - - do all matchings again - - - re-match - - - - - - - - 0 - 20 - - - - - - - - save selected model - - - save - - - - - - - aircraft enabled - - - Enbl. - - - - - - - callsign of aircraft - - - - - - 15 - - - true - - - callsign - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - load model set - - - load model set - - - - - - - - - - aircraft enabled/disable - - - - - - - - - - Icon - - - @@ -301,8 +234,68 @@ - - + + + + save selected model + + + save + + + + + + + callsign of aircraft + + + 15 + + + true + + + callsign + + + + + + + aircraft enabled/disable + + + + + + + + + + load model set + + + load model set + + + + + + + validate + + + + + + + + 50 + 0 + + + @@ -311,6 +304,11 @@ + + BlackGui::Views::CAircraftModelView + QTableView +
blackgui/views/aircraftmodelview.h
+
BlackGui::Components::CSimulatorSelector QFrame @@ -322,11 +320,6 @@ QTableView
blackgui/views/simulatedaircraftview.h
- - BlackGui::Views::CAircraftModelView - QTableView -
blackgui/views/aircraftmodelview.h
-
BlackGui::Components::CModelMatcherLogComponent QFrame @@ -345,11 +338,17 @@
blackgui/components/matchingstatisticscomponent.h
1
+ + BlackGui::CElidedPushButton + QPushButton +
blackgui/elidedpushbutton.h
+
tw_SpecializedViews tvp_RenderedAircraft cb_AircraftIconDisplayed + pb_ValidateModelSet pb_LoadModels cb_AircraftEnabled le_Callsign diff --git a/src/swiftguistandard/swiftguistd.cpp b/src/swiftguistandard/swiftguistd.cpp index 4a4ae8eab..7e008d0db 100644 --- a/src/swiftguistandard/swiftguistd.cpp +++ b/src/swiftguistandard/swiftguistd.cpp @@ -310,7 +310,7 @@ void SwiftGuiStd::setContextAvailability() this->displayDBusReconnectDialog(); } m_contextNetworkAvailable = m_coreAvailable && sGui->getIContextNetwork() && !sGui->getIContextNetwork()->isEmptyObject(); - m_contextAudioAvailable = m_coreAvailable && sGui->getIContextAudio() && !sGui->getIContextAudio()->isEmptyObject(); + m_contextAudioAvailable = m_coreAvailable && sGui->getIContextAudio() && !sGui->getIContextAudio()->isEmptyObject(); // react to a change in core's availability if (m_coreAvailable != corePreviouslyAvailable) @@ -437,15 +437,23 @@ void SwiftGuiStd::verifyPrerequisites() } void SwiftGuiStd::onValidatedModelSet(const CSimulatorInfo &simulator, const CAircraftModelList &valid, const CAircraftModelList &invalid, bool stopped, const CStatusMessageList &msgs) +{ + this->displayValidationDialog(); + m_validationDialog->validatedModelSet(simulator, valid, invalid, stopped, msgs); + + // modal version + // const int r = m_validationDialog->exec(); + // Q_UNUSED(r); +} + +void SwiftGuiStd::displayValidationDialog() { if (!sGui || sGui->isShuttingDown()) { return; } if (!m_validationDialog) { m_validationDialog.reset(new CAircraftModelSetValidationDialog(this)); } - m_validationDialog->validatedModelSet(simulator, valid, invalid, stopped, msgs); - const int r = m_validationDialog->exec(); - Q_UNUSED(r); + m_validationDialog->show(); } void SwiftGuiStd::checkDbDataLoaded() diff --git a/src/swiftguistandard/swiftguistd.h b/src/swiftguistandard/swiftguistd.h index 8b52c3126..5daf5b27a 100644 --- a/src/swiftguistandard/swiftguistd.h +++ b/src/swiftguistandard/swiftguistd.h @@ -272,6 +272,9 @@ private: //! Model set haas been verfied void onValidatedModelSet(const BlackMisc::Simulation::CSimulatorInfo &simulator, const BlackMisc::Simulation::CAircraftModelList &valid, const BlackMisc::Simulation::CAircraftModelList &invalid, bool stopped, const BlackMisc::CStatusMessageList &msgs); + //! Display validation dialog + void displayValidationDialog(); + //! Ckeck if the DB data have been loaded void checkDbDataLoaded(); diff --git a/src/swiftguistandard/swiftguistdinit.cpp b/src/swiftguistandard/swiftguistdinit.cpp index 4529148ad..4529640d2 100644 --- a/src/swiftguistandard/swiftguistdinit.cpp +++ b/src/swiftguistandard/swiftguistdinit.cpp @@ -235,10 +235,10 @@ void SwiftGuiStd::initGuiSignals() connect(sGui, &CGuiApplication::styleSheetsChanged, this, &SwiftGuiStd::onStyleSheetsChanged, Qt::QueuedConnection); // login - connect(ui->comp_Login, &CLoginComponent::loginOrLogoffCancelled, this, &SwiftGuiStd::setMainPageToInfoArea); + connect(ui->comp_Login, &CLoginComponent::loginOrLogoffCancelled, this, &SwiftGuiStd::setMainPageToInfoArea); connect(ui->comp_Login, &CLoginComponent::loginOrLogoffSuccessful, this, &SwiftGuiStd::setMainPageToInfoArea); connect(ui->comp_Login, &CLoginComponent::loginOrLogoffSuccessful, ui->comp_MainInfoArea->getFlightPlanComponent(), &CFlightPlanComponent::loginDataSet); - connect(ui->comp_Login, &CLoginComponent::loginDataChangedDigest, ui->comp_MainInfoArea->getFlightPlanComponent(), &CFlightPlanComponent::loginDataSet); + connect(ui->comp_Login, &CLoginComponent::loginDataChangedDigest, ui->comp_MainInfoArea->getFlightPlanComponent(), &CFlightPlanComponent::loginDataSet); connect(ui->comp_Login, &CLoginComponent::requestNetworkSettings, [ this ]() { if (!sApp || sApp->isShuttingDown()) { return; } @@ -258,7 +258,8 @@ void SwiftGuiStd::initGuiSignals() connect(ui->comp_MainInfoArea->getAircraftComponent(), &CAircraftComponent::requestTextMessageWidget, ui->comp_MainInfoArea->getTextMessageComponent(), &CTextMessageComponent::showCorrespondingTab); connect(ui->comp_MainInfoArea->getUserComponent(), &CUserComponent::requestTextMessageWidget, ui->comp_MainInfoArea->getTextMessageComponent(), &CTextMessageComponent::showCorrespondingTab); - // interpolation + // interpolation and validation + connect(ui->comp_MainInfoArea->getMappingComponent(), &CMappingComponent::requestValidationDialog, this, &SwiftGuiStd::displayValidationDialog); connect(ui->comp_MainInfoArea->getInterpolationComponent(), &CInterpolationComponent::requestRenderingRestrictionsWidget, [ = ] { this->setSettingsPage(CSettingsComponent::SettingTabSimulator);