Ref T75, filter aircraft ICAO by id

This commit is contained in:
Klaus Basan
2017-05-07 22:02:15 +02:00
parent 614efd7681
commit 55357f9c65
4 changed files with 89 additions and 14 deletions

View File

@@ -17,12 +17,14 @@ namespace BlackGui
namespace Models
{
CAircraftIcaoFilter::CAircraftIcaoFilter(
int id,
const QString &designator, const QString &name,
const QString &description, const QString &combinedType) :
m_id(id),
m_designator(designator.trimmed().toUpper()), m_manufacturer(name.trimmed()),
m_description(description.trimmed()), m_combinedType(combinedType.trimmed().toUpper())
{
this->m_valid = !(this->m_combinedType.isEmpty() && this->m_designator.isEmpty() &&
this->m_valid = !(this->m_id < 0 && this->m_combinedType.isEmpty() && this->m_designator.isEmpty() &&
this->m_description.isEmpty() && this->m_manufacturer.isEmpty());
}
@@ -34,6 +36,16 @@ namespace BlackGui
for (const CAircraftIcaoCode &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_designator.isEmpty())
{
if (!this->stringMatchesFilterExpression(icao.getDesignator(), m_designator)) { continue; }

View File

@@ -29,7 +29,8 @@ namespace BlackGui
{
public:
//! Constructor
CAircraftIcaoFilter(const QString &designator,
CAircraftIcaoFilter(int id,
const QString &designator,
const QString &manufacturer,
const QString &description,
const QString &combinedType);
@@ -38,6 +39,7 @@ namespace BlackGui
virtual BlackMisc::Aviation::CAircraftIcaoCodeList filter(const BlackMisc::Aviation::CAircraftIcaoCodeList &inContainer) const override;
private:
int m_id = -1;
QString m_designator;
QString m_manufacturer;
QString m_description;