From 3c200034dca8012de4542ce01a189a9e2aca867f Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 9 Jul 2019 17:18:08 +0200 Subject: [PATCH] Ref T660, add simulator settings in own models/model set component so simulator director can be used for validation --- src/blackgui/components/dbmappingcomponent.h | 4 ++-- src/blackgui/components/dbownmodelscomponent.cpp | 6 ++++-- src/blackgui/components/dbownmodelscomponent.h | 4 +++- src/blackgui/components/dbownmodelsetcomponent.cpp | 6 ++++-- src/blackgui/components/dbownmodelsetcomponent.h | 2 ++ 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/blackgui/components/dbmappingcomponent.h b/src/blackgui/components/dbmappingcomponent.h index 5e8ac1aa2..29d2c2f7d 100644 --- a/src/blackgui/components/dbmappingcomponent.h +++ b/src/blackgui/components/dbmappingcomponent.h @@ -86,7 +86,7 @@ namespace BlackGui explicit CDbMappingComponent(QWidget *parent = nullptr); //! Destructor - virtual ~CDbMappingComponent(); + virtual ~CDbMappingComponent() override; //! Graceful shutdown void gracefulShutdown(); @@ -322,7 +322,7 @@ namespace BlackGui QScopedPointer ui; QScopedPointer m_autoStashDialog; //!< dialog auto stashing QScopedPointer m_autoSimulatorDialog; //!< dialog auto simulator update - QScopedPointer m_modelModifyDialog; //!< dialog when modifying models + QScopedPointer m_modelModifyDialog; //!< dialog when modifying models BlackMisc::Simulation::FsCommon::CVPilotRulesReader m_vPilotReader; //!< read vPilot rules BlackMisc::CDigestSignal m_dsStashedModelsChanged { this, &CDbMappingComponent::onStashedModelsChangedDigest, 750, 25 }; BlackMisc::CDataReadOnly m_swiftDbUser { this, &CDbMappingComponent::onUserChanged }; diff --git a/src/blackgui/components/dbownmodelscomponent.cpp b/src/blackgui/components/dbownmodelscomponent.cpp index 619cab539..b8e645ce3 100644 --- a/src/blackgui/components/dbownmodelscomponent.cpp +++ b/src/blackgui/components/dbownmodelscomponent.cpp @@ -51,7 +51,9 @@ namespace BlackGui ui->tvp_OwnAircraftModels->addFilterDialog(); ui->tvp_OwnAircraftModels->setDisplayAutomatically(true); ui->tvp_OwnAircraftModels->setCustomMenu(new CLoadModelsMenu(this)); - ui->tvp_OwnAircraftModels->setCorrespondingSimulator(ui->comp_SimulatorSelector->getValue()); + + const CSimulatorInfo sim = ui->comp_SimulatorSelector->getValue(); + ui->tvp_OwnAircraftModels->setCorrespondingSimulator(sim, m_simulatorSettings.getSimulatorDirectoryOrDefault(sim)); bool c = connect(ui->tvp_OwnAircraftModels, &CAircraftModelView::requestUpdate, this, &CDbOwnModelsComponent::requestOwnModelsUpdate); Q_ASSERT_X(c, Q_FUNC_INFO, "Connect failed"); @@ -155,7 +157,7 @@ namespace BlackGui this->requestSimulatorModelsWithCacheInBackground(simulator); ui->comp_SimulatorSelector->setValue(simulator); this->setUiSimulatorString(simulator); - ui->tvp_OwnAircraftModels->setCorrespondingSimulator(simulator); + ui->tvp_OwnAircraftModels->setCorrespondingSimulator(simulator, m_simulatorSettings.getSimulatorDirectoryOrDefault(simulator)); return true; } diff --git a/src/blackgui/components/dbownmodelscomponent.h b/src/blackgui/components/dbownmodelscomponent.h index 1ebfb4277..e31ec218f 100644 --- a/src/blackgui/components/dbownmodelscomponent.h +++ b/src/blackgui/components/dbownmodelscomponent.h @@ -14,12 +14,13 @@ #include "blackgui/components/simulatorselector.h" #include "blackgui/menus/menudelegate.h" #include "blackgui/overlaymessagesframe.h" -#include "blackmisc/datacache.h" #include "blackmisc/simulation/aircraftmodellist.h" #include "blackmisc/simulation/aircraftmodelloader.h" #include "blackmisc/simulation/aircraftmodelinterfaces.h" #include "blackmisc/simulation/data/modelcaches.h" +#include "blackmisc/simulation/settings/modelsettings.h" #include "blackmisc/simulation/simulatorinfo.h" +#include "blackmisc/datacache.h" #include "blackmisc/directories.h" #include "blackmisc/statusmessage.h" #include "blackmisc/connectionguard.h" @@ -132,6 +133,7 @@ namespace BlackGui BlackMisc::Simulation::IAircraftModelLoader *m_modelLoader = nullptr; //!< read own aircraft models, aka models on disk BlackMisc::Simulation::CSimulatorInfo m_simulator; //!< currently init to simulator BlackMisc::CSetting m_directorySettings { this }; //!< the swift directories + BlackMisc::Simulation::Settings::CMultiSimulatorSettings m_simulatorSettings { this }; //!< for directories //! Request own models void requestOwnModelsUpdate(); diff --git a/src/blackgui/components/dbownmodelsetcomponent.cpp b/src/blackgui/components/dbownmodelsetcomponent.cpp index 54e231eb3..1db96acdb 100644 --- a/src/blackgui/components/dbownmodelsetcomponent.cpp +++ b/src/blackgui/components/dbownmodelsetcomponent.cpp @@ -70,7 +70,9 @@ namespace BlackGui ui->tvp_OwnModelSet->menuAddItems(CAircraftModelView::MenuLoadAndSave | CAircraftModelView::MenuRefresh | CAircraftModelView::MenuOrderable); ui->tvp_OwnModelSet->setSorting(CAircraftModel::IndexOrderString); ui->tvp_OwnModelSet->initAsOrderable(); - ui->tvp_OwnModelSet->setCorrespondingSimulator(ui->comp_SimulatorSelector->getValue()); + + const CSimulatorInfo sim = ui->comp_SimulatorSelector->getValue(); + ui->tvp_OwnModelSet->setCorrespondingSimulator(sim, m_simulatorSettings.getSimulatorDirectoryOrDefault(sim)); ui->comp_SimulatorSelector->setMode(CSimulatorSelector::RadioButtons); ui->comp_SimulatorSelector->setRememberSelectionAndSetToLastSelection(); const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue(); @@ -428,7 +430,7 @@ namespace BlackGui m_simulator = simulator; ui->comp_SimulatorSelector->setValue(simulator); - ui->tvp_OwnModelSet->setCorrespondingSimulator(simulator); + ui->tvp_OwnModelSet->setCorrespondingSimulator(simulator, m_simulatorSettings.getSimulatorDirectoryOrDefault(m_simulator)); ui->le_Simulator->setText(simulator.toQString(true)); this->synchronizeCache(simulator); this->updateViewToCurrentModels(); diff --git a/src/blackgui/components/dbownmodelsetcomponent.h b/src/blackgui/components/dbownmodelsetcomponent.h index 836a460dc..3c83e991c 100644 --- a/src/blackgui/components/dbownmodelsetcomponent.h +++ b/src/blackgui/components/dbownmodelsetcomponent.h @@ -16,6 +16,7 @@ #include "blackgui/menus/menudelegate.h" #include "blackmisc/simulation/data/modelcaches.h" #include "blackmisc/simulation/settings/modelsettings.h" +#include "blackmisc/simulation/settings/simulatorsettings.h" #include "blackmisc/simulation/aircraftmodelinterfaces.h" #include "blackmisc/simulation/aircraftmodellist.h" #include "blackmisc/simulation/simulatorinfo.h" @@ -185,6 +186,7 @@ namespace BlackGui BlackMisc::Simulation::CSimulatorInfo m_simulator; //!< currently set simulator BlackMisc::CSettingReadOnly m_distributorPreferences { this, &CDbOwnModelSetComponent::distributorPreferencesChanged }; //!< distributor preferences BlackMisc::CSettingReadOnly m_modelSettings { this }; //!< settings for models + BlackMisc::Simulation::Settings::CMultiSimulatorSettings m_simulatorSettings { this }; //!< for directories // -------------------------- custom menus -----------------------------------