diff --git a/src/blackgui/components/dbstashcomponent.cpp b/src/blackgui/components/dbstashcomponent.cpp
index d2002a8af..8ec1ec366 100644
--- a/src/blackgui/components/dbstashcomponent.cpp
+++ b/src/blackgui/components/dbstashcomponent.cpp
@@ -65,6 +65,7 @@ namespace BlackGui
connect(this->ui->pb_Publish, &QPushButton::pressed, this, &CDbStashComponent::ps_onPublishPressed);
connect(this->ui->tvp_StashAircraftModels, &CAircraftModelView::modelChanged, this, &CDbStashComponent::stashedModelsChanged);
connect(this->ui->tvp_StashAircraftModels, &CAircraftModelView::modelDataChanged, this, &CDbStashComponent::ps_onRowCountChanged);
+ connect(ui->pb_RemoveInvald, &QPushButton::pressed, this, &CDbStashComponent::ps_onRemoveInvalidPressed);
// copy over buttons
connect(this->ui->pb_AircraftIcao, &QPushButton::pressed, this, &CDbStashComponent::ps_copyOverPartsToSelected);
@@ -236,6 +237,15 @@ namespace BlackGui
this->validateAndDisplay(validModels, invalidModels, true);
}
+ void CDbStashComponent::ps_onRemoveInvalidPressed()
+ {
+ if (ui->tvp_StashAircraftModels->isEmpty()) {return; }
+ CAircraftModelList validModels;
+ CAircraftModelList invalidModels;
+ this->validate(validModels, invalidModels);
+ this->unstashModels(invalidModels);
+ }
+
void CDbStashComponent::ps_onPublishPressed()
{
if (this->ui->tvp_StashAircraftModels->isEmpty()) {return; }
diff --git a/src/blackgui/components/dbstashcomponent.h b/src/blackgui/components/dbstashcomponent.h
index 8b96aed97..bae66ca24 100644
--- a/src/blackgui/components/dbstashcomponent.h
+++ b/src/blackgui/components/dbstashcomponent.h
@@ -77,6 +77,9 @@ namespace BlackGui
//! Unstash given models by model string
int unstashModels(QStringList modelStrings);
+ //! Unstash given models
+ int unstashModels(const BlackMisc::Simulation::CAircraftModelList &models);
+
//! The embedded view
BlackGui::Views::CAircraftModelView *view() const;
@@ -140,6 +143,9 @@ namespace BlackGui
//! Validate pressed
void ps_onValidatePressed();
+ //! Remove invalid (validates and removes invalid models)
+ void ps_onRemoveInvalidPressed();
+
//! Publish pressed
void ps_onPublishPressed();
diff --git a/src/blackgui/components/dbstashcomponent.ui b/src/blackgui/components/dbstashcomponent.ui
index 9501a5ac5..3d3c979d4 100644
--- a/src/blackgui/components/dbstashcomponent.ui
+++ b/src/blackgui/components/dbstashcomponent.ui
@@ -6,7 +6,7 @@
0
0
- 616
+ 773
221
@@ -90,6 +90,16 @@
+ -
+
+
+ Remove invalid models
+
+
+ Rem. invalid
+
+
+
-
@@ -155,10 +165,16 @@
+ tvp_StashAircraftModels
pb_Unstash
pb_Validate
+ pb_RemoveInvald
pb_Publish
- tvp_StashAircraftModels
+ cb_SelectedOnly
+ pb_Distributor
+ pb_AircraftIcao
+ pb_Livery
+ pb_AirlineIcao
diff --git a/src/blackgui/views/aircraftmodelview.cpp b/src/blackgui/views/aircraftmodelview.cpp
index 7870f0f25..961bfa086 100644
--- a/src/blackgui/views/aircraftmodelview.cpp
+++ b/src/blackgui/views/aircraftmodelview.cpp
@@ -145,7 +145,7 @@ namespace BlackGui
{
if (modelStrings.isEmpty()) { return 0; }
CAircraftModelList copy(this->container());
- int delta = copy.removeModelsWithString(modelStrings, sensitivity);
+ const int delta = copy.removeModelsWithString(modelStrings, sensitivity);
if (delta > 0)
{
this->updateContainerMaybeAsync(copy);