diff --git a/src/blackmisc/aviation/aircrafticaocodelist.cpp b/src/blackmisc/aviation/aircrafticaocodelist.cpp index 4571262f3..2983a5548 100644 --- a/src/blackmisc/aviation/aircrafticaocodelist.cpp +++ b/src/blackmisc/aviation/aircrafticaocodelist.cpp @@ -114,6 +114,19 @@ namespace BlackMisc return c; } + QStringList CAircraftIcaoCodeList::allIcaoCodes(bool onlyKnownDesignators) const + { + QStringList c; + for (const CAircraftIcaoCode &icao : *this) + { + if (onlyKnownDesignators && !icao.hasKnownDesignator()) { continue; } + const QString d(icao.getDesignator()); + if (c.contains(d)) { continue; } + c.append(d); + } + return c; + } + CAircraftIcaoCodeList CAircraftIcaoCodeList::fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete) { CAircraftIcaoCodeList codes; diff --git a/src/blackmisc/aviation/aircrafticaocodelist.h b/src/blackmisc/aviation/aircrafticaocodelist.h index fbec727ca..90b419f2e 100644 --- a/src/blackmisc/aviation/aircrafticaocodelist.h +++ b/src/blackmisc/aviation/aircrafticaocodelist.h @@ -71,6 +71,9 @@ namespace BlackMisc //! For selection completion QStringList toCompleterStrings(bool withIataCodes = false, bool withFamily = false) const; + //! All ICAO codes, no duplicates + QStringList allIcaoCodes(bool noUnspecified = true) const; + //! From our database JSON format static CAircraftIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete = true); };