Ref T701, reduce by airline name and/or telephony designator if possible

This commit is contained in:
Klaus Basan
2019-07-12 00:34:53 +02:00
committed by Mat Sutcliffe
parent 53d637acb0
commit cd63712cd7
4 changed files with 160 additions and 31 deletions

View File

@@ -190,6 +190,35 @@ namespace BlackMisc
});
}
CAircraftModelList CAircraftModelList::findByAirlineNameAndTelephonyDesignator(const QString &name, const QString &telephony, bool onlyIfExistInModel) const
{
return this->findBy([ & ](const CAircraftModel & model)
{
if (!model.hasAirlineDesignator() || !model.hasValidDbKey()) { return false; }
const CAirlineIcaoCode &icao = model.getAirlineIcaoCode();
if (!name.isEmpty() && (icao.hasName() || !onlyIfExistInModel))
{
if (!icao.getName().contains(name, Qt::CaseInsensitive)) { return false; }
}
if (!telephony.isEmpty() && (icao.hasTelephonyDesignator() || !onlyIfExistInModel))
{
if (!icao.getTelephonyDesignator().contains(name, Qt::CaseInsensitive)) { return false; }
}
return true;
});
}
CAircraftModelList CAircraftModelList::findByAirlineNamesOrTelephonyDesignator(const QString &name) const
{
return this->findBy([ & ](const CAircraftModel & model)
{
if (!model.hasAirlineDesignator() || !model.hasValidDbKey()) { return false; }
const CAirlineIcaoCode &icao = model.getAirlineIcaoCode();
return icao.matchesNamesOrTelephonyDesignator(name);
});
}
CAircraftModelList CAircraftModelList::findByLiveryCode(const CLivery &livery) const
{
if (!livery.hasCombinedCode()) { return CAircraftModelList(); }