From 18041b1dc209dbb697b714cbd10e619df52c653a Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 24 Jul 2018 16:57:28 +0200 Subject: [PATCH] Ref T292, Ref T285 removed model set loader from UI components and replaced by central cache --- .../components/dbquickmappingwizard.cpp | 6 +- .../distributorpreferencescomponent.cpp | 78 ++++++++++--------- .../distributorpreferencescomponent.h | 29 +++---- .../components/firstmodelsetcomponent.cpp | 17 ++-- .../components/firstmodelsetcomponent.h | 4 - src/blackgui/components/logincomponent.cpp | 4 +- .../components/modelmatchercomponent.cpp | 33 +++++--- .../components/modelmatchercomponent.h | 14 ++-- 8 files changed, 96 insertions(+), 89 deletions(-) diff --git a/src/blackgui/components/dbquickmappingwizard.cpp b/src/blackgui/components/dbquickmappingwizard.cpp index e49917e47..8c1c6354e 100644 --- a/src/blackgui/components/dbquickmappingwizard.cpp +++ b/src/blackgui/components/dbquickmappingwizard.cpp @@ -49,9 +49,9 @@ namespace BlackGui connect(sGui->getWebDataServices()->getDatabaseWriter(), &CDatabaseWriter::publishedModels, this, &CDbQuickMappingWizard::onPublishedModels, Qt::QueuedConnection); connect(this, &CDbQuickMappingWizard::currentIdChanged, this, &CDbQuickMappingWizard::currentWizardPageChanged); - connect(ui->selector_AircraftIcaoCode, &CDbAircraftIcaoSelectorComponent::changedAircraftIcao, this, &CDbQuickMappingWizard::onAircraftSelected); - connect(ui->selector_AirlineIcaoCode, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CDbQuickMappingWizard::onAirlineSelected); - connect(ui->selector_AirlineName, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CDbQuickMappingWizard::onAirlineSelected); + connect(ui->selector_AircraftIcaoCode, &CDbAircraftIcaoSelectorComponent::changedAircraftIcao, this, &CDbQuickMappingWizard::onAircraftSelected, Qt::QueuedConnection); + connect(ui->selector_AirlineIcaoCode, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CDbQuickMappingWizard::onAirlineSelected, Qt::QueuedConnection); + connect(ui->selector_AirlineName, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CDbQuickMappingWizard::onAirlineSelected, Qt::QueuedConnection); ui->comp_Log->showFilterDialog(); // filter for log normally not needed, so dialog (not bar) diff --git a/src/blackgui/components/distributorpreferencescomponent.cpp b/src/blackgui/components/distributorpreferencescomponent.cpp index a766f4d51..13ee5606e 100644 --- a/src/blackgui/components/distributorpreferencescomponent.cpp +++ b/src/blackgui/components/distributorpreferencescomponent.cpp @@ -10,17 +10,18 @@ #include "blackcore/webdataservices.h" #include "blackgui/components/distributorpreferencescomponent.h" #include "blackgui/components/simulatorselector.h" -#include "blackgui/guiapplication.h" -#include "blackgui/guiutility.h" -#include "blackgui/models/distributorlistmodel.h" -#include "blackgui/overlaymessagesframe.h" #include "blackgui/views/distributorview.h" #include "blackgui/views/viewbase.h" -#include "blackmisc/logmessage.h" -#include "blackmisc/orderable.h" +#include "blackgui/models/distributorlistmodel.h" +#include "blackgui/overlaymessagesframe.h" +#include "blackgui/guiapplication.h" +#include "blackgui/guiutility.h" +#include "blackmisc/simulation/data/modelcaches.h" #include "blackmisc/simulation/aircraftmodellist.h" #include "blackmisc/simulation/distributor.h" #include "blackmisc/simulation/distributorlistpreferences.h" +#include "blackmisc/logmessage.h" +#include "blackmisc/orderable.h" #include "blackmisc/statusmessage.h" #include "ui_distributorpreferencescomponent.h" @@ -29,9 +30,11 @@ #include #include #include +#include using namespace BlackMisc; using namespace BlackMisc::Simulation; +using namespace BlackMisc::Simulation::Data; using namespace BlackMisc::Network; using namespace BlackGui::Views; using namespace BlackGui::Models; @@ -41,110 +44,111 @@ namespace BlackGui namespace Components { CDistributorPreferencesComponent::CDistributorPreferencesComponent(QWidget *parent) : - QFrame(parent), + COverlayMessagesFrame(parent), ui(new Ui::CDistributorPreferencesComponent) { - const CSimulatorInfo simulator = this->m_modelSetLoader.getSimulator(); - ui->setupUi(this); ui->comp_SimulatorSelector->setMode(CSimulatorSelector::RadioButtons); - ui->comp_SimulatorSelector->setRememberSelection(true); - ui->comp_SimulatorSelector->setValue(simulator); + ui->comp_SimulatorSelector->setRememberSelectionAndSetToLastSelection(); - connect(ui->pb_All, &QPushButton::pressed, this, &CDistributorPreferencesComponent::ps_loadAll); - connect(ui->pb_AllForSimulator, &QPushButton::pressed, this, &CDistributorPreferencesComponent::ps_loadAllForSimulator); - connect(ui->pb_AllInSet, &QPushButton::pressed, this, &CDistributorPreferencesComponent::ps_loadDistributorsFromSet); - connect(ui->pb_Save, &QPushButton::pressed, this, &CDistributorPreferencesComponent::ps_save); - connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CDistributorPreferencesComponent::ps_simulatorChanged); - - this->m_overlayMessageFrame = CGuiUtility::nextOverlayMessageFrame(this); - Q_ASSERT_X(this->m_overlayMessageFrame, Q_FUNC_INFO, "Missing message frame"); + connect(ui->pb_All, &QPushButton::pressed, this, &CDistributorPreferencesComponent::loadAllDistributors); + connect(ui->pb_AllForSimulator, &QPushButton::pressed, this, &CDistributorPreferencesComponent::loadDistributorsForSimulator); + connect(ui->pb_AllInSet, &QPushButton::pressed, this, &CDistributorPreferencesComponent::loadDistributorsFromSet); + connect(ui->pb_Save, &QPushButton::pressed, this, &CDistributorPreferencesComponent::save); + connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CDistributorPreferencesComponent::onSimulatorChanged); ui->tvp_Distributors->setDistributorMode(CDistributorListModel::NormalWithOrder); ui->tvp_Distributors->menuRemoveItems(CDistributorView::MenuBackend | CDistributorView::MenuDisplayAutomaticallyAndRefresh | CDistributorView::MenuLoadAndSave); ui->tvp_Distributors->menuAddItems(CDistributorView::MenuClear | CDistributorView::MenuOrderable | CDistributorView::MenuRemoveSelectedRows); ui->tvp_Distributors->initAsOrderable(); - QTimer::singleShot(1000, this, &CDistributorPreferencesComponent::ps_deferredInit); + this->triggerDeferredSimulatorChange(); } CDistributorPreferencesComponent::~CDistributorPreferencesComponent() { } - void CDistributorPreferencesComponent::ps_preferencesChanged() + void CDistributorPreferencesComponent::onPreferencesChanged() { // changed somewhere else const CSimulatorInfo sim(ui->comp_SimulatorSelector->getValue()); - const CDistributorList distributors = this->m_distributorPreferences.getThreadLocal().getDistributors(sim); + const CDistributorList distributors = m_distributorPreferences.getThreadLocal().getDistributors(sim); this->updateContainerMaybeAsync(distributors); } - void CDistributorPreferencesComponent::ps_loadAll() + void CDistributorPreferencesComponent::loadAllDistributors() { Q_ASSERT_X(sGui, Q_FUNC_INFO, "Missing application"); const CDistributorList distributors(sGui->getWebDataServices()->getDistributors()); if (distributors.isEmpty()) { const CStatusMessage m = CStatusMessage(this).error("No distributors"); - this->m_overlayMessageFrame->showOverlayMessage(m); + this->showOverlayMessage(m); return; } this->updateContainerMaybeAsync(distributors); } - void CDistributorPreferencesComponent::ps_loadAllForSimulator() + void CDistributorPreferencesComponent::loadDistributorsForSimulator() { const CSimulatorInfo sim(ui->comp_SimulatorSelector->getValue()); const CDistributorList distributors(sGui->getWebDataServices()->getDistributors().matchesSimulator(sim)); if (distributors.isEmpty()) { const CStatusMessage m = CStatusMessage(this).error("No distributors, or no distributors matching %1") << sim.toQString(); - this->m_overlayMessageFrame->showOverlayMessage(m); + this->showOverlayMessage(m); return; } this->updateContainerMaybeAsync(distributors); } - void CDistributorPreferencesComponent::ps_loadDistributorsFromSet() + void CDistributorPreferencesComponent::loadDistributorsFromSet() { const CSimulatorInfo sim(ui->comp_SimulatorSelector->getValue()); - const CAircraftModelList models = this->m_modelSetLoader.getAircraftModels(sim); + const CAircraftModelList models = CCentralMultiSimulatorModelSetCachesProvider::modelCachesInstance().getCachedModels(sim); if (models.isEmpty()) { const CStatusMessage m = CStatusMessage(this).error("No data in model set %1") << sim.toQString(); - this->m_overlayMessageFrame->showOverlayMessage(m); + this->showOverlayMessage(m); return; } const CDistributorList distributors = models.getDistributors(); if (distributors.isEmpty()) { const CStatusMessage m = CStatusMessage(this).error("No distributors for model set %1") << sim.toQString(); - this->m_overlayMessageFrame->showOverlayMessage(m); + this->showOverlayMessage(m); return; } this->updateContainerMaybeAsync(distributors); } - void CDistributorPreferencesComponent::ps_save() + void CDistributorPreferencesComponent::save() { const CDistributorList distributors(ui->tvp_Distributors->container()); const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue(); - CDistributorListPreferences preferences = this->m_distributorPreferences.getThreadLocal(); + CDistributorListPreferences preferences = m_distributorPreferences.getThreadLocal(); preferences.setDistributors(distributors, simulator); - const CStatusMessage m = this->m_distributorPreferences.setAndSave(preferences); + const CStatusMessage m = m_distributorPreferences.setAndSave(preferences); CLogMessage::preformatted(m); } - void CDistributorPreferencesComponent::ps_simulatorChanged(const CSimulatorInfo &simulator) + void CDistributorPreferencesComponent::onSimulatorChanged(const CSimulatorInfo &simulator) { Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Expect single simulator"); - const CDistributorList distributors(this->m_distributorPreferences.getThreadLocal().getDistributors(simulator)); + const CDistributorList distributors(m_distributorPreferences.getThreadLocal().getDistributors(simulator)); ui->tvp_Distributors->updateContainerMaybeAsync(distributors); } - void CDistributorPreferencesComponent::ps_deferredInit() + void CDistributorPreferencesComponent::triggerDeferredSimulatorChange() { - this->ps_simulatorChanged(ui->comp_SimulatorSelector->getValue()); + QPointer myself(this); + QTimer::singleShot(1000, this, [ = ] + { + if (!myself) { return; } + if (!sApp || sApp->isShuttingDown()) { return; } + const CSimulatorInfo sim = ui->comp_SimulatorSelector->getValue(); + this->onSimulatorChanged(sim); + }); } void CDistributorPreferencesComponent::updateContainerMaybeAsync(const CDistributorList &models, bool sortByOrder) diff --git a/src/blackgui/components/distributorpreferencescomponent.h b/src/blackgui/components/distributorpreferencescomponent.h index e6ce40553..7f1515345 100644 --- a/src/blackgui/components/distributorpreferencescomponent.h +++ b/src/blackgui/components/distributorpreferencescomponent.h @@ -12,17 +12,14 @@ #ifndef BLACKGUI_COMPONENTS_DISTRIBUTORPREFERENCESCOMPONENT_H #define BLACKGUI_COMPONENTS_DISTRIBUTORPREFERENCESCOMPONENT_H -#include "blackmisc/settingscache.h" -#include "blackmisc/simulation/aircraftmodelsetloader.h" +#include "blackgui/overlaymessagesframe.h" #include "blackmisc/simulation/settings/modelsettings.h" #include "blackmisc/simulation/simulatorinfo.h" +#include "blackmisc/settingscache.h" -#include #include #include -class QWidget; - namespace Ui { class CDistributorPreferencesComponent; } namespace BlackGui { @@ -33,7 +30,7 @@ namespace BlackGui /*! * Set and order distributors (to be used for model set) */ - class CDistributorPreferencesComponent : public QFrame + class CDistributorPreferencesComponent : public COverlayMessagesFrame { Q_OBJECT @@ -44,33 +41,31 @@ namespace BlackGui //! Destructor virtual ~CDistributorPreferencesComponent(); - private slots: + private: //! Changed preferences - void ps_preferencesChanged(); + void onPreferencesChanged(); //! Load all distributors - void ps_loadAll(); + void loadAllDistributors(); //! Load all distributors for current simulator - void ps_loadAllForSimulator(); + void loadDistributorsForSimulator(); //! Load distributors from set - void ps_loadDistributorsFromSet(); + void loadDistributorsFromSet(); //! Save the preferences - void ps_save(); + void save(); //! Simulator has been changed - void ps_simulatorChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator); + void onSimulatorChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator); // Init - void ps_deferredInit(); + void triggerDeferredSimulatorChange(); private: QScopedPointer ui; - BlackGui::COverlayMessagesFrame *m_overlayMessageFrame = nullptr; - BlackMisc::Simulation::CAircraftModelSetLoader m_modelSetLoader { this }; - BlackMisc::CSetting m_distributorPreferences { this, &CDistributorPreferencesComponent::ps_preferencesChanged }; + BlackMisc::CSetting m_distributorPreferences { this, &CDistributorPreferencesComponent::onPreferencesChanged }; //! Update void updateContainerMaybeAsync(const BlackMisc::Simulation::CDistributorList &models, bool sortByOrder = true); diff --git a/src/blackgui/components/firstmodelsetcomponent.cpp b/src/blackgui/components/firstmodelsetcomponent.cpp index fb2b2d45d..3966ff5fc 100644 --- a/src/blackgui/components/firstmodelsetcomponent.cpp +++ b/src/blackgui/components/firstmodelsetcomponent.cpp @@ -93,8 +93,8 @@ namespace BlackGui ui->pb_CreateModelSet->setEnabled(modelsCount > 0); static const QString modelsSetNo("Model set is empty"); - const int modelsSetCount = this->modelSetLoader().getAircraftModelsCount(); - ui->le_ModelSetInfo->setText(modelsSetCount > 0 ? this->modelSetLoader().getModelCacheCountAndTimestamp(simulator) : modelsSetNo); + const int modelsSetCount = m_modelSetDialog->modelSetComponent()->getModelSetCount(); + ui->le_ModelSetInfo->setText(modelsSetCount > 0 ? m_modelSetDialog->modelSetComponent()->getModelCacheCountAndTimestamp() : modelsSetNo); } void CFirstModelSetComponent::onSettingsChanged(const CSimulatorInfo &simulator) @@ -142,11 +142,6 @@ namespace BlackGui return m_modelsDialog->modelsComponent()->modelLoader(); } - const CAircraftModelSetLoader &CFirstModelSetComponent::modelSetLoader() const - { - return this->modelSetComponent()->modelSetLoader(); - } - void CFirstModelSetComponent::openOwnModelsDialog() { if (!sGui || sGui->isShuttingDown() || !sGui->getWebDataServices()) { return; } @@ -214,8 +209,8 @@ namespace BlackGui void CFirstModelSetComponent::createModelSet() { - const CSimulatorInfo sim = ui->comp_SimulatorSelector->getValue(); - const int modelsCount = this->modelLoader()->getCachedModelsCount(sim); + const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue(); + const int modelsCount = this->modelLoader()->getCachedModelsCount(simulator); if (modelsCount < 1) { static const CStatusMessage msg = CStatusMessage(this).validationError("No models indexed so far. Try 'reload'!"); @@ -238,14 +233,14 @@ namespace BlackGui return; } } - CAircraftModelList modelsForSet = this->modelLoader()->getCachedModels(sim); + CAircraftModelList modelsForSet = this->modelLoader()->getCachedModels(simulator); if (!useAllModels) { const CDistributorList distributors = ui->comp_Distributors->getSelectedDistributors(); modelsForSet = modelsForSet.findByDistributors(distributors); } - m_modelSetDialog->modelSetComponent()->setModelSet(modelsForSet, sim); + m_modelSetDialog->modelSetComponent()->setModelSet(modelsForSet, simulator); ui->pb_ModelSet->click(); } diff --git a/src/blackgui/components/firstmodelsetcomponent.h b/src/blackgui/components/firstmodelsetcomponent.h index cd5801dc9..007d81efd 100644 --- a/src/blackgui/components/firstmodelsetcomponent.h +++ b/src/blackgui/components/firstmodelsetcomponent.h @@ -16,7 +16,6 @@ #include "blackgui/overlaymessagesframe.h" #include "blackcore/application/applicationsettings.h" #include "blackmisc/simulation/settings/simulatorsettings.h" -#include "blackmisc/simulation/aircraftmodelsetloader.h" #include "blackmisc/simulation/aircraftmodelloader.h" #include "blackmisc/simulation/simulatorinfo.h" #include "blackmisc/logcategorylist.h" @@ -75,9 +74,6 @@ namespace BlackGui //! Direct access to component's loader BlackMisc::Simulation::IAircraftModelLoader *modelLoader() const; - //! Model set loader - const BlackMisc::Simulation::CAircraftModelSetLoader &modelSetLoader() const; - //! Open own models dialog void openOwnModelsDialog(); diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 84d1f8de9..f53af5b4d 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -122,8 +122,8 @@ namespace BlackGui ui->le_AircraftCombinedType->setMaxLength(3); ui->le_AircraftCombinedType->setValidator(new CUpperCaseValidator(this)); connect(ui->le_AircraftCombinedType, &QLineEdit::editingFinished, this, &CLoginComponent::validateAircraftValues); - connect(ui->selector_AircraftIcao, &CDbAircraftIcaoSelectorComponent::changedAircraftIcao, this, &CLoginComponent::changedAircraftIcao); - connect(ui->selector_AirlineIcao, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CLoginComponent::changedAirlineIcao); + connect(ui->selector_AircraftIcao, &CDbAircraftIcaoSelectorComponent::changedAircraftIcao, this, &CLoginComponent::changedAircraftIcao, Qt::QueuedConnection); + connect(ui->selector_AirlineIcao, &CDbAirlineIcaoSelectorComponent::changedAirlineIcao, this, &CLoginComponent::changedAirlineIcao, Qt::QueuedConnection); connect(ui->tb_SimulatorIcaoReverseLookup, &QToolButton::clicked, this, &CLoginComponent::reverseLookupAircraftModel); if (sGui && sGui->getIContextSimulator()) diff --git a/src/blackgui/components/modelmatchercomponent.cpp b/src/blackgui/components/modelmatchercomponent.cpp index 668cee5b5..f97f46b3e 100644 --- a/src/blackgui/components/modelmatchercomponent.cpp +++ b/src/blackgui/components/modelmatchercomponent.cpp @@ -14,11 +14,12 @@ #include "blackgui/components/dbliveryselectorcomponent.h" #include "blackgui/components/modelmatchercomponent.h" #include "blackgui/components/simulatorselector.h" +#include "blackgui/models/statusmessagelistmodel.h" +#include "blackgui/views/statusmessageview.h" +#include "blackgui/uppercasevalidator.h" #include "blackgui/guiapplication.h" #include "blackgui/guiutility.h" -#include "blackgui/models/statusmessagelistmodel.h" -#include "blackgui/uppercasevalidator.h" -#include "blackgui/views/statusmessageview.h" +#include "blackmisc/simulation/data/modelcaches.h" #include "blackmisc/aviation/aircrafticaocode.h" #include "blackmisc/aviation/airlineicaocode.h" #include "blackmisc/aviation/callsign.h" @@ -40,6 +41,7 @@ using namespace BlackMisc; using namespace BlackMisc::Aviation; using namespace BlackMisc::Simulation; +using namespace BlackMisc::Simulation::Data; using namespace BlackMisc::Network; using namespace BlackGui::Models; using namespace BlackCore; @@ -57,6 +59,7 @@ namespace BlackGui ui->setupUi(this); ui->comp_SimulatorSelector->setMode(CSimulatorSelector::RadioButtons); + ui->comp_SimulatorSelector->setRememberSelectionAndSetToLastSelection(); ui->comp_AirlineSelector->displayWithIcaoDescription(false); ui->comp_AircraftSelector->displayWithIcaoDescription(false); ui->comp_LiverySelector->withLiveryDescription(false); @@ -72,8 +75,6 @@ namespace BlackGui connect(ui->pb_ReverseLookup, &QPushButton::pressed, this, &CModelMatcherComponent::reverseLookup); connect(sGui->getWebDataServices(), &CWebDataServices::dataRead, this, &CModelMatcherComponent::onWebDataRed); - const CSimulatorInfo sim(m_modelSetLoader.getSimulator()); - ui->comp_SimulatorSelector->setValue(sim); this->redisplay(); } @@ -91,11 +92,11 @@ namespace BlackGui this->redisplay(); } - void CModelMatcherComponent::onSimulatorChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator) + void CModelMatcherComponent::onSimulatorChanged(const CSimulatorInfo &simulator) { Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); - m_modelSetLoader.setSimulator(simulator); - m_matcher.setModelSet(m_modelSetLoader.getAircraftModels(), simulator); + const CAircraftModelList models = CCentralMultiSimulatorModelSetCachesProvider::modelCachesInstance().getCachedModels(simulator); + m_matcher.setModelSet(models, simulator); this->redisplay(); } @@ -147,10 +148,24 @@ namespace BlackGui void CModelMatcherComponent::redisplay() { - const int c = m_modelSetLoader.getAircraftModelsCount(); + const int c = this->getModelSetModelsCount(); ui->le_ModelSetCount->setText(QString::number(c)); } + CAircraftModelList CModelMatcherComponent::getModelSetModels() const + { + const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue(); + const CAircraftModelList models = CCentralMultiSimulatorModelSetCachesProvider::modelCachesInstance().getCachedModels(simulator); + return models; + } + + int CModelMatcherComponent::getModelSetModelsCount() const + { + const CSimulatorInfo simulator = ui->comp_SimulatorSelector->getValue(); + const int modelCount = CCentralMultiSimulatorModelSetCachesProvider::modelCachesInstance().getCachedModelsCount(simulator); + return modelCount; + } + CSimulatedAircraft CModelMatcherComponent::createAircraft() const { const QString airline(ui->comp_AirlineSelector->getRawDesignator()); diff --git a/src/blackgui/components/modelmatchercomponent.h b/src/blackgui/components/modelmatchercomponent.h index cb7c10d77..2a9887907 100644 --- a/src/blackgui/components/modelmatchercomponent.h +++ b/src/blackgui/components/modelmatchercomponent.h @@ -16,7 +16,6 @@ #include "blackgui/blackguiexport.h" #include "blackmisc/network/entityflags.h" #include "blackmisc/simulation/aircraftmodel.h" -#include "blackmisc/simulation/aircraftmodelsetloader.h" #include "blackmisc/simulation/simulatedaircraft.h" #include "blackmisc/simulation/simulatorinfo.h" @@ -24,8 +23,6 @@ #include #include -class QWidget; - namespace Ui { class CModelMatcherComponent; } namespace BlackGui { @@ -67,15 +64,20 @@ namespace BlackGui //! Init void redisplay(); + //! The current model set models + BlackMisc::Simulation::CAircraftModelList getModelSetModels() const; + + //! The current model set models size + int getModelSetModelsCount() const; + //! Pseudo aircraft created from entries BlackMisc::Simulation::CSimulatedAircraft createAircraft() const; //! Pseudo default aircraft BlackMisc::Simulation::CAircraftModel defaultModel() const; - QScopedPointer ui; - BlackMisc::Simulation::CAircraftModelSetLoader m_modelSetLoader { this }; - BlackCore::CAircraftMatcher m_matcher { BlackCore::CAircraftMatcher::All, this }; + QScopedPointer ui; + BlackCore::CAircraftMatcher m_matcher { BlackCore::CAircraftMatcher::All, this }; }; } // ns } // ns