diff --git a/src/blackcore/webdataservices.cpp b/src/blackcore/webdataservices.cpp index 63a5099b0..da5b41d38 100644 --- a/src/blackcore/webdataservices.cpp +++ b/src/blackcore/webdataservices.cpp @@ -600,6 +600,12 @@ namespace BlackCore return CAirlineIcaoCodeList(); } + bool CWebDataServices::containsAirlineIcaoDesignator(const QString &designator) const + { + if (designator.isEmpty()) { return false; } + return this->getAirlineIcaoCodes().containsDesignator(designator); + } + int CWebDataServices::getAirlineIcaoCodesCount() const { if (m_icaoDataReader) { return m_icaoDataReader->getAirlineIcaoCodesCount(); } diff --git a/src/blackcore/webdataservices.h b/src/blackcore/webdataservices.h index 13869d385..9414ea1fd 100644 --- a/src/blackcore/webdataservices.h +++ b/src/blackcore/webdataservices.h @@ -262,6 +262,10 @@ namespace BlackCore //! \threadsafe BlackMisc::Aviation::CAirlineIcaoCodeList getAirlineIcaoCodes() const; + //! Contains the given designator + //! \threadsafe + bool containsAirlineIcaoDesignator(const QString &designator) const; + //! Airline names //! \threadsafe QStringList getAirlineNames() const; diff --git a/src/blackmisc/aviation/airlineicaocodelist.cpp b/src/blackmisc/aviation/airlineicaocodelist.cpp index 9c345ada2..1474fed9a 100644 --- a/src/blackmisc/aviation/airlineicaocodelist.cpp +++ b/src/blackmisc/aviation/airlineicaocodelist.cpp @@ -256,5 +256,11 @@ namespace BlackMisc if (sort) { c.sort(); } return c; } + + bool CAirlineIcaoCodeList::containsDesignator(const QString &designator) const + { + if (designator.isEmpty()) { return false; } + return this->contains(&CAirlineIcaoCode::getDesignator, designator.toUpper()); + } } // ns } // ns diff --git a/src/blackmisc/aviation/airlineicaocodelist.h b/src/blackmisc/aviation/airlineicaocodelist.h index d75933694..68464e158 100644 --- a/src/blackmisc/aviation/airlineicaocodelist.h +++ b/src/blackmisc/aviation/airlineicaocodelist.h @@ -95,6 +95,9 @@ namespace BlackMisc //! String list for completion by name QStringList toNameCompleterStrings(bool sort = true) const; + //! Contains given designator? + bool containsDesignator(const QString &designator) const; + //! From our DB JSON static CAirlineIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete = true, CAirlineIcaoCodeList *inconsistent = nullptr); };