From d5a4e3d70d08dbf1cff0df9c13876e35d5f71ecc Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 20 Jul 2019 14:19:10 +0200 Subject: [PATCH] Ref T705, utility functions for NON DB models --- .../simulation/aircraftmodellist.cpp | 43 +++++++++++++++++++ src/blackmisc/simulation/aircraftmodellist.h | 11 +++++ 2 files changed, 54 insertions(+) diff --git a/src/blackmisc/simulation/aircraftmodellist.cpp b/src/blackmisc/simulation/aircraftmodellist.cpp index 9bf2208cd..1e5d38b43 100644 --- a/src/blackmisc/simulation/aircraftmodellist.cpp +++ b/src/blackmisc/simulation/aircraftmodellist.cpp @@ -480,6 +480,49 @@ namespace BlackMisc }); } + CAircraftModelList CAircraftModelList::findWithValidDbKey() const + { + return this->findBy([](const CAircraftModel & model) + { + return model.hasValidDbKey(); + }); + } + + CAircraftModelList CAircraftModelList::findWithoutValidDbKey() const + { + return this->findBy([](const CAircraftModel & model) + { + return !model.hasValidDbKey(); + }); + } + + CAircraftModelList CAircraftModelList::findNonDbModelsForAirline(const QString &airline) const + { + const CAircraftModelList noDb = this->findWithoutValidDbKey(); + return noDb.findBy([&](const CAircraftModel & model) + { + return model.getAirlineIcaoCode().matchesDesignator(airline); + }); + } + + CAircraftModelList CAircraftModelList::findNonDbModelsForAircraft(const QString &airline) const + { + const CAircraftModelList noDb = this->findWithoutValidDbKey(); + return noDb.findBy([&](const CAircraftModel & model) + { + return model.getAircraftIcaoCode().matchesDesignator(airline); + }); + } + + CAircraftModelList CAircraftModelList::findNonDbModelsForModelString(const QString &modelString) const + { + const CAircraftModelList noDb = this->findWithoutValidDbKey(); + return noDb.findBy([&](const CAircraftModel & model) + { + return model.matchesModelString(modelString, Qt::CaseInsensitive); + }); + } + CAircraftModelList CAircraftModelList::getAllIncludedModels() const { return this->findBy([](const CAircraftModel & model) diff --git a/src/blackmisc/simulation/aircraftmodellist.h b/src/blackmisc/simulation/aircraftmodellist.h index 7b3a5098e..a52304d42 100644 --- a/src/blackmisc/simulation/aircraftmodellist.h +++ b/src/blackmisc/simulation/aircraftmodellist.h @@ -263,6 +263,17 @@ namespace BlackMisc //! All models NOT of the FS (FSX, P3D, FS9) family CAircraftModelList findNonFsFamilyModels() const; + //! With/without DB key @{ + CAircraftModelList findWithValidDbKey() const; + CAircraftModelList findWithoutValidDbKey() const; + //! @} + + //! Some finders for NON DB models, mostly for matching script results @{ + CAircraftModelList findNonDbModelsForAirline(const QString &airline) const; + CAircraftModelList findNonDbModelsForAircraft(const QString &airline) const; + CAircraftModelList findNonDbModelsForModelString(const QString &modelString) const; + //! @} + //! All included models CAircraftModelList getAllIncludedModels() const;