From 360edca4b364733b51315dadb21488284d438d5a Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 8 Mar 2019 17:41:36 +0100 Subject: [PATCH] Ref T472, utility functions for category --- src/blackmisc/aviation/aircrafticaocode.cpp | 17 ++++++++++++++--- src/blackmisc/aviation/aircrafticaocode.h | 6 ++++++ .../simulation/aircraftmatchersetup.cpp | 6 ++++++ src/blackmisc/simulation/aircraftmatchersetup.h | 3 +++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/blackmisc/aviation/aircrafticaocode.cpp b/src/blackmisc/aviation/aircrafticaocode.cpp index f8c8bc299..0fb458d14 100644 --- a/src/blackmisc/aviation/aircrafticaocode.cpp +++ b/src/blackmisc/aviation/aircrafticaocode.cpp @@ -499,6 +499,11 @@ namespace BlackMisc this->getDbKeyAsStringInParentheses(" "); } + bool CAircraftIcaoCode::hasCategory() const + { + return !m_category.isNull(); + } + bool CAircraftIcaoCode::hasCompleteData() const { return hasValidCombinedType() && hasDesignator() && hasValidWtc() && hasManufacturer(); @@ -704,8 +709,14 @@ namespace BlackMisc const QString &CAircraftIcaoCode::getUnassignedDesignator() { - static const QString i("ZZZZ"); - return i; + static const QString z("ZZZZ"); + return z; + } + + const QString &CAircraftIcaoCode::getGliderDesignator() + { + static const QString g("GLID"); + return g; } const CAircraftIcaoCode &CAircraftIcaoCode::unassignedIcao() @@ -716,7 +727,7 @@ namespace BlackMisc const QStringList &CAircraftIcaoCode::getSpecialDesignators() { - static const QStringList s({ "ZZZZ", "SHIP", "BALL", "GLID", "ULAC", "GYRO", "UHEL" }); + static const QStringList s({ "ZZZZ", "SHIP", "BALL", getGliderDesignator(), "ULAC", "GYRO", "UHEL" }); return s; } diff --git a/src/blackmisc/aviation/aircrafticaocode.h b/src/blackmisc/aviation/aircrafticaocode.h index a36a4d0ec..09859eb03 100644 --- a/src/blackmisc/aviation/aircrafticaocode.h +++ b/src/blackmisc/aviation/aircrafticaocode.h @@ -258,6 +258,9 @@ namespace BlackMisc //! Get category const CAircraftCategory &getCategory() const { return m_category; } + //! Has category? + bool hasCategory() const; + //! Set category void setCategory(const CAircraftCategory &category) { m_category = category; } @@ -330,6 +333,9 @@ namespace BlackMisc //! The unassigned designator ("ZZZZ") static const QString &getUnassignedDesignator(); + //! Get the glider designator + static const QString &getGliderDesignator(); + //! Unassigned ICAO code "ZZZZ" static const CAircraftIcaoCode &unassignedIcao(); diff --git a/src/blackmisc/simulation/aircraftmatchersetup.cpp b/src/blackmisc/simulation/aircraftmatchersetup.cpp index d723c4f8d..46f4af8ea 100644 --- a/src/blackmisc/simulation/aircraftmatchersetup.cpp +++ b/src/blackmisc/simulation/aircraftmatchersetup.cpp @@ -112,6 +112,12 @@ namespace BlackMisc this->setPickStrategy(PickByOrder); } + bool CAircraftMatcherSetup::useCategoryMatching() const + { + const MatchingMode mm = this->getMatchingMode(); + return mm.testFlag(ByCategoryGlider) || mm.testFlag(ByCategoryMilitary); + } + const QString &CAircraftMatcherSetup::algorithmToString(CAircraftMatcherSetup::MatchingAlgorithm algorithm) { static const QString rs("reduce + score based"); diff --git a/src/blackmisc/simulation/aircraftmatchersetup.h b/src/blackmisc/simulation/aircraftmatchersetup.h index 691ea0ecb..119995d77 100644 --- a/src/blackmisc/simulation/aircraftmatchersetup.h +++ b/src/blackmisc/simulation/aircraftmatchersetup.h @@ -156,6 +156,9 @@ namespace BlackMisc //! Reset void reset(MatchingAlgorithm algorithm); + //! Use category matching + bool useCategoryMatching() const; + //! Algorithm to string static const QString &algorithmToString(MatchingAlgorithm algorithm);