diff --git a/src/blackgui/components/aircraftmodelvalidationcomponent.cpp b/src/blackgui/components/aircraftmodelvalidationcomponent.cpp
index 882eb2ba1..c0ddceadb 100644
--- a/src/blackgui/components/aircraftmodelvalidationcomponent.cpp
+++ b/src/blackgui/components/aircraftmodelvalidationcomponent.cpp
@@ -25,10 +25,15 @@ namespace BlackGui
ui(new Ui::CAircraftModelValidationComponent)
{
ui->setupUi(this);
+ ui->comp_Simulator->setMode(CSimulatorSelector::ComboBox);
+ ui->comp_Simulator->setRememberSelection(false);
+
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);
+ connect(ui->cb_EnableStartupCheck, &QCheckBox::toggled, this, &CAircraftModelValidationComponent::onCheckAtStartupChanged);
+ connect(ui->pb_TempDisableInvalid, &QPushButton::released, this, &CAircraftModelValidationComponent::onButtonClicked);
+ connect(ui->pb_TempDisableSelected, &QPushButton::released, this, &CAircraftModelValidationComponent::onButtonClicked);
+ connect(ui->pb_TriggerValidation, &QPushButton::released, this, &CAircraftModelValidationComponent::triggerValidation);
}
CAircraftModelValidationComponent::~CAircraftModelValidationComponent()
@@ -39,6 +44,7 @@ namespace BlackGui
Q_UNUSED(simulator);
Q_UNUSED(valid);
ui->tvp_InvalidModels->updateContainerMaybeAsync(invalid);
+ ui->comp_Simulator->setValue(simulator);
ui->comp_Messages->clear();
ui->comp_Messages->appendStatusMessagesToList(msgs);
@@ -71,6 +77,27 @@ namespace BlackGui
Q_UNUSED(msg);
}
+ void CAircraftModelValidationComponent::triggerValidation()
+ {
+ if (!sGui || sGui->isShuttingDown() || !sGui->supportsContexts()) { return; }
+ if (!sGui->getIContextSimulator()) { return; }
+ if (sGui->getIContextSimulator()->isValidationInProgress())
+ {
+ this->showOverlayHTMLMessage("Validation in progress", 5000);
+ return;
+ }
+
+ const CSimulatorInfo sim = ui->comp_Simulator->getValue();
+ if (sGui->getIContextSimulator()->triggerModelSetValidation(sim))
+ {
+ this->showOverlayHTMLMessage(QStringLiteral("Triggered validation for '%1'").arg(sim.toQString(true)), 5000);
+ }
+ else
+ {
+ this->showOverlayHTMLMessage(QStringLiteral("Cannot trigger validation for '%1'").arg(sim.toQString(true)), 5000);
+ }
+ }
+
void CAircraftModelValidationComponent::onButtonClicked()
{
const QObject *sender = QObject::sender();
diff --git a/src/blackgui/components/aircraftmodelvalidationcomponent.h b/src/blackgui/components/aircraftmodelvalidationcomponent.h
index 0eff68327..ebfac2949 100644
--- a/src/blackgui/components/aircraftmodelvalidationcomponent.h
+++ b/src/blackgui/components/aircraftmodelvalidationcomponent.h
@@ -62,6 +62,9 @@ namespace BlackGui
//! Enable/disable startup check
void onCheckAtStartupChanged(bool checked);
+ //! Trigger new validation
+ void triggerValidation();
+
//! Button has been clicked
void onButtonClicked();
};
diff --git a/src/blackgui/components/aircraftmodelvalidationcomponent.ui b/src/blackgui/components/aircraftmodelvalidationcomponent.ui
index 79a798d22..196898a25 100644
--- a/src/blackgui/components/aircraftmodelvalidationcomponent.ui
+++ b/src/blackgui/components/aircraftmodelvalidationcomponent.ui
@@ -88,6 +88,29 @@
+ -
+
+
+
+ 75
+ 0
+
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
+ -
+
+
+ trigger validation
+
+
+
-
@@ -119,7 +142,21 @@
blackgui/components/logcomponent.h
1
+
+ BlackGui::Components::CSimulatorSelector
+ QFrame
+ blackgui/components/simulatorselector.h
+ 1
+
+
+ tw_CAircraftModelValidationComponent
+ tvp_InvalidModels
+ cb_EnableStartupCheck
+ pb_TriggerValidation
+ pb_TempDisableInvalid
+ pb_TempDisableSelected
+