mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-02 23:25:53 +08:00
Ref T472, further utility functions for category handling
This commit is contained in:
committed by
Mat Sutcliffe
parent
c899bfbea7
commit
54adb40329
@@ -276,6 +276,17 @@ namespace BlackMisc
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByDesignatorsOrFamilyWithColorLivery(const QStringList &designators) const
|
||||
{
|
||||
return this->findBy([ & ](const CAircraftModel & model)
|
||||
{
|
||||
if (!model.getLivery().isColorLivery()) { return false; }
|
||||
const CAircraftIcaoCode modelIcao(model.getAircraftIcaoCode());
|
||||
if (designators.contains(modelIcao.getDesignator())) { return true; }
|
||||
return modelIcao.hasFamily() && designators.contains(modelIcao.getFamily());
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByCombinedType(const QString &combinedType) const
|
||||
{
|
||||
const QString cc(combinedType.trimmed().toUpper());
|
||||
@@ -356,6 +367,33 @@ namespace BlackMisc
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByCategoryFirstLevel(int firstLevel) const
|
||||
{
|
||||
if (firstLevel < 0) { return CAircraftModelList(); }
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return (model.hasCategory() && model.getAircraftIcaoCode().getCategory().getFirstLevel() == firstLevel);
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByCategory(const CAircraftCategory &category) const
|
||||
{
|
||||
if (category.isNull()) { return CAircraftModelList(); }
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return (model.hasCategory() && model.getAircraftIcaoCode().getCategory() == category);
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByCategories(const CAircraftCategoryList &categories) const
|
||||
{
|
||||
if (categories.isEmpty()) { return CAircraftModelList(); }
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return (model.hasCategory() && categories.contains(model.getAircraftIcaoCode().getCategory()));
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findFsFamilyModels() const
|
||||
{
|
||||
return this->findBy([](const CAircraftModel & model)
|
||||
@@ -545,6 +583,23 @@ namespace BlackMisc
|
||||
});
|
||||
}
|
||||
|
||||
bool CAircraftModelList::containsCategory() const
|
||||
{
|
||||
return this->containsBy([ & ](const CAircraftModel & model)
|
||||
{
|
||||
return model.hasCategory();
|
||||
});
|
||||
}
|
||||
|
||||
bool CAircraftModelList::containsCategory(int firstLevel) const
|
||||
{
|
||||
if (firstLevel < 0) { return false; }
|
||||
return this->containsBy([ & ](const CAircraftModel & model)
|
||||
{
|
||||
return model.hasCategory() && model.getAircraftIcaoCode().getCategory().getFirstLevel() == firstLevel;
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByDistributors(const CDistributorList &distributors) const
|
||||
{
|
||||
if (distributors.isEmpty()) { return CAircraftModelList(); }
|
||||
|
||||
Reference in New Issue
Block a user