Ref T75, filter airline ICAO by id

This commit is contained in:
Klaus Basan
2017-05-07 22:03:19 +02:00
parent 55357f9c65
commit 997d17c459
5 changed files with 100 additions and 64 deletions

View File

@@ -16,12 +16,12 @@ namespace BlackGui
{
namespace Models
{
CAirlineIcaoFilter::CAirlineIcaoFilter(const QString &vDesignator, const QString &name,
CAirlineIcaoFilter::CAirlineIcaoFilter(int id, const QString &vDesignator, const QString &name,
const QString &countryIso, bool isReal, bool isVa) :
m_vDesignator(vDesignator.trimmed().toUpper()), m_name(name.trimmed()),
m_id(id), m_vDesignator(vDesignator.trimmed().toUpper()), m_name(name.trimmed()),
m_countryIso(countryIso.trimmed().toUpper()), m_real(isReal), m_va(isVa)
{
this->m_valid = !(this->m_countryIso.isEmpty() && this->m_vDesignator.isEmpty() &&
this->m_valid = !(m_id < 0 && this->m_countryIso.isEmpty() && this->m_vDesignator.isEmpty() &&
this->m_name.isEmpty() && !this->m_va && !this->m_real);
}
@@ -31,6 +31,17 @@ namespace BlackGui
CAirlineIcaoCodeList outContainer;
for (const CAirlineIcaoCode &icao : inContainer)
{
if (m_id >= 0)
{
// search only for id
if (icao.isLoadedFromDb() && icao.getDbKey() == m_id)
{
outContainer.push_back(icao);
break;
}
continue;
}
if (!m_vDesignator.isEmpty())
{
// based on T72, also find VLHA based on LHA

View File

@@ -15,7 +15,6 @@
#include "blackgui/blackguiexport.h"
#include "blackgui/models/modelfilter.h"
#include "blackmisc/aviation/airlineicaocodelist.h"
#include <QString>
namespace BlackGui
@@ -27,13 +26,14 @@ namespace BlackGui
{
public:
//! Constructor
CAirlineIcaoFilter(const QString &vDesignator, const QString &name,
CAirlineIcaoFilter(int id, const QString &vDesignator, const QString &name,
const QString &countryIso, bool isReal, bool isVa);
//! \copydoc IModelFilter::filter
virtual BlackMisc::Aviation::CAirlineIcaoCodeList filter(const BlackMisc::Aviation::CAirlineIcaoCodeList &inContainer) const override;
private:
int m_id = -1;
QString m_vDesignator;
QString m_name;
QString m_countryIso;