From 05fb937df1fcb56c8fdcdeedae6dbfde7290908e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 11 Feb 2018 07:08:13 +0100 Subject: [PATCH] More detailed info about excluded models --- src/blackcore/aircraftmatcher.cpp | 2 ++ src/blackmisc/simulation/aircraftmodellist.cpp | 16 ++++++++++++++++ src/blackmisc/simulation/aircraftmodellist.h | 6 ++++++ 3 files changed, 24 insertions(+) diff --git a/src/blackcore/aircraftmatcher.cpp b/src/blackcore/aircraftmatcher.cpp index 39cfe16a8..83db8689f 100644 --- a/src/blackcore/aircraftmatcher.cpp +++ b/src/blackcore/aircraftmatcher.cpp @@ -498,6 +498,8 @@ namespace BlackCore if ((r1 + r2) > 0) { CLogMessage(this).warning("Removed models for matcher, without string '%1', excluded '%2'") << r1 << r2; + if (r1 > 0) { CLogMessage(this).warning("Without string: %1") << models.findEmptyModelStrings().getModelStringList().join(", "); } + if (r2 > 0) { CLogMessage(this).warning("Excluded: %1") << models.findByModelMode(CAircraftModel::Exclude).getModelStringList().join(", "); } } if (modelsCleaned.isEmpty()) { diff --git a/src/blackmisc/simulation/aircraftmodellist.cpp b/src/blackmisc/simulation/aircraftmodellist.cpp index 0611c8558..7aca9a89d 100644 --- a/src/blackmisc/simulation/aircraftmodellist.cpp +++ b/src/blackmisc/simulation/aircraftmodellist.cpp @@ -96,6 +96,14 @@ namespace BlackMisc }); } + CAircraftModelList CAircraftModelList::findEmptyModelStrings() const + { + return this->findBy([ & ](const CAircraftModel & model) + { + return !model.hasModelString(); + }); + } + CAircraftModel CAircraftModelList::findFirstByModelStringOrDefault(const QString &modelString, Qt::CaseSensitivity sensitivity) const { if (modelString.isEmpty()) { return CAircraftModel(); } @@ -297,6 +305,14 @@ namespace BlackMisc }); } + CAircraftModelList CAircraftModelList::findByModelMode(CAircraftModel::ModelMode mode) const + { + return this->findBy([ = ](const CAircraftModel & model) + { + return (model.getModelMode() == mode); + }); + } + CAircraftModelList CAircraftModelList::getAllFsFamilyModels() const { return this->findBy([](const CAircraftModel & model) diff --git a/src/blackmisc/simulation/aircraftmodellist.h b/src/blackmisc/simulation/aircraftmodellist.h index 392bf96e4..0752f4366 100644 --- a/src/blackmisc/simulation/aircraftmodellist.h +++ b/src/blackmisc/simulation/aircraftmodellist.h @@ -104,6 +104,9 @@ namespace BlackMisc //! \remark normally CAircraftModelList::findFirstByModelStringOrDefault would be used CAircraftModelList findByModelString(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const; + //! Find empty model strings + CAircraftModelList findEmptyModelStrings() const; + //! Find first by model string CAircraftModel findFirstByModelStringOrDefault(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const; @@ -176,6 +179,9 @@ namespace BlackMisc //! Find by VTOL flag, \c false returns non VTOL models CAircraftModelList findByVtolFlag(bool vtol) const; + //! Find by model mode + CAircraftModelList findByModelMode(CAircraftModel::ModelMode mode) const; + //! Model icon path QString findModelIconPathByModelString(const QString &modelString) const;