From 0d70e87d118d1fae091396ca60f1cd21ceebeef7 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 26 Aug 2016 01:22:21 +0200 Subject: [PATCH] refs #745, do not consolidate with DB data when stashing editor model (prevents that changed data are overridden by DB data again and hence reverted) --- src/blackgui/components/dbmappingcomponent.cpp | 6 ++++-- src/blackgui/components/dbstashcomponent.cpp | 4 ++-- src/blackgui/components/dbstashcomponent.h | 2 +- src/blackgui/editors/modelmappingform.cpp | 1 + 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/blackgui/components/dbmappingcomponent.cpp b/src/blackgui/components/dbmappingcomponent.cpp index 8e760c0bd..61edb987b 100644 --- a/src/blackgui/components/dbmappingcomponent.cpp +++ b/src/blackgui/components/dbmappingcomponent.cpp @@ -362,12 +362,14 @@ namespace BlackGui void CDbMappingComponent::ps_stashCurrentModel() { - const CAircraftModel model(getEditorAircraftModel()); CStatusMessageList msgs(this->validateCurrentModel(true)); if (!msgs.hasErrorMessages()) { + const CAircraftModel editorModel(getEditorAircraftModel()); + + // do not consolidate, because we want to keep data as they are from the editor msgs.push_back( - ui->comp_StashAircraft->stashModel(model, true) + ui->comp_StashAircraft->stashModel(editorModel, true, false) ); } if (msgs.hasErrorMessages()) diff --git a/src/blackgui/components/dbstashcomponent.cpp b/src/blackgui/components/dbstashcomponent.cpp index 8db15fcfc..7bde67858 100644 --- a/src/blackgui/components/dbstashcomponent.cpp +++ b/src/blackgui/components/dbstashcomponent.cpp @@ -94,9 +94,9 @@ namespace BlackGui return CStatusMessage(); } - CStatusMessage CDbStashComponent::stashModel(const CAircraftModel &model, bool replace) + CStatusMessage CDbStashComponent::stashModel(const CAircraftModel &model, bool replace, bool consolidateWithDbData) { - const CAircraftModel stashModel(this->consolidateModel(model)); + const CAircraftModel stashModel(consolidateWithDbData ? this->consolidateModel(model) : model); const CStatusMessage m(validateStashModel(stashModel, replace)); if (!m.isWarningOrAbove()) { diff --git a/src/blackgui/components/dbstashcomponent.h b/src/blackgui/components/dbstashcomponent.h index bae66ca24..ff25e0e2f 100644 --- a/src/blackgui/components/dbstashcomponent.h +++ b/src/blackgui/components/dbstashcomponent.h @@ -118,7 +118,7 @@ namespace BlackGui public slots: //! Stash given model (includes validation and consolidation with DB data) - BlackMisc::CStatusMessage stashModel(const BlackMisc::Simulation::CAircraftModel &model, bool replace = false); + BlackMisc::CStatusMessage stashModel(const BlackMisc::Simulation::CAircraftModel &model, bool replace = false, bool consolidateWithDbData = true); //! Stash given models (includes validation and consolidation with DB data) BlackMisc::CStatusMessageList stashModels(const BlackMisc::Simulation::CAircraftModelList &models); diff --git a/src/blackgui/editors/modelmappingform.cpp b/src/blackgui/editors/modelmappingform.cpp index fd7e67b9e..ddde4ee01 100644 --- a/src/blackgui/editors/modelmappingform.cpp +++ b/src/blackgui/editors/modelmappingform.cpp @@ -37,6 +37,7 @@ namespace BlackGui ui->lai_Id->set(CIcons::appMappings16(), "Id:"); connect(ui->pb_Stash, &QPushButton::clicked, this, &CModelMappingForm::requestStash); + // for setting mode (include/exclude) this->ps_userChanged(); }