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);