From 7f9182a1c4d8418fbdf14d00ff89850053dd4758 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 24 Dec 2018 07:02:32 +0100 Subject: [PATCH] Ref T451, added disable functionality in matcher --- src/blackcore/aircraftmatcher.cpp | 20 ++++++++++++++++++++ src/blackcore/aircraftmatcher.h | 22 +++++++++++++++------- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/blackcore/aircraftmatcher.cpp b/src/blackcore/aircraftmatcher.cpp index d78da0e81..7111207f9 100644 --- a/src/blackcore/aircraftmatcher.cpp +++ b/src/blackcore/aircraftmatcher.cpp @@ -753,6 +753,26 @@ namespace BlackCore return models.size(); } + void CAircraftMatcher::disableModelsForMatching(const CAircraftModelList &removedModels, bool incremental) + { + if (incremental) + { + m_modelSet.removeModelsWithString(removedModels, Qt::CaseInsensitive); + m_disabledModels.push_back(removedModels); + } + else + { + this->restoreDisabledModels(); + m_disabledModels = removedModels; + m_modelSet.removeModelsWithString(removedModels, Qt::CaseInsensitive); + } + } + + void CAircraftMatcher::restoreDisabledModels() + { + m_modelSet.replaceOrAddModelsWithString(m_disabledModels, Qt::CaseInsensitive); + } + void CAircraftMatcher::setDefaultModel(const CAircraftModel &defaultModel) { m_defaultModel = defaultModel; diff --git a/src/blackcore/aircraftmatcher.h b/src/blackcore/aircraftmatcher.h index 64ff24c40..32b2d921d 100644 --- a/src/blackcore/aircraftmatcher.h +++ b/src/blackcore/aircraftmatcher.h @@ -189,6 +189,13 @@ namespace BlackCore //! \note uses a set from "somewhere else" so it can also be used with arbitrary sets for testing int setModelSet(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CSimulatorInfo &simulator, bool forced); + //! Remove a model for matching + //! \remark effective until new set is set + void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental); + + //! Restore the models removed with CAircraftMatcher::disableModelForMatching + void restoreDisabledModels(); + //! Default model const BlackMisc::Simulation::CAircraftModel &getDefaultModel() const { return m_defaultModel; } @@ -290,13 +297,14 @@ namespace BlackCore //! \threadsafe static bool isValidAirlineIcaoDesignator(const QString &designator, bool checkAgainstSwiftDb); - BlackMisc::Simulation::CAircraftMatcherSetup m_setup; //!< setup - BlackMisc::Simulation::CAircraftModel m_defaultModel; //!< model to be used as default model - BlackMisc::Simulation::CAircraftModelList m_modelSet; //!< models used for model matching - BlackMisc::Simulation::CAircraftModelList m_removedModels; //!< removed models - BlackMisc::Simulation::CSimulatorInfo m_simulator; //!< simulator (optional) - BlackMisc::Simulation::CMatchingStatistics m_statistics; //!< matching statistics - QString m_modelSetInfo; //!< info string + BlackMisc::Simulation::CAircraftMatcherSetup m_setup; //!< setup + BlackMisc::Simulation::CAircraftModel m_defaultModel; //!< model to be used as default model + BlackMisc::Simulation::CAircraftModelList m_modelSet; //!< models used for model matching + BlackMisc::Simulation::CAircraftModelList m_removedModels; //!< removed models + BlackMisc::Simulation::CAircraftModelList m_disabledModels; //!< disabled models for matching + BlackMisc::Simulation::CSimulatorInfo m_simulator; //!< simulator (optional) + BlackMisc::Simulation::CMatchingStatistics m_statistics; //!< matching statistics + QString m_modelSetInfo; //!< info string }; } // namespace