Ref T441, model list utility functions

This commit is contained in:
Klaus Basan
2018-11-25 18:21:52 +01:00
parent 3edbd09732
commit 1f1fa6d7aa
2 changed files with 57 additions and 3 deletions

View File

@@ -150,6 +150,11 @@ namespace BlackMisc
}); });
} }
CAircraftModelList CAircraftModelList::findByAircraftAndAirline(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode) const
{
return this->findBy(&CAircraftModel::getAircraftIcaoCode, aircraftIcaoCode, &CAircraftModel::getAirlineIcaoCode, airlineIcaoCode);
}
CAircraftModelList CAircraftModelList::findByAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const CAircraftModelList CAircraftModelList::findByAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const
{ {
if (aircraftDesignator.isEmpty()) { return CAircraftModelList(); } if (aircraftDesignator.isEmpty()) { return CAircraftModelList(); }
@@ -160,6 +165,11 @@ namespace BlackMisc
}); });
} }
CAircraftModelList CAircraftModelList::findByAircraftAndLivery(const CAircraftIcaoCode &aircraftIcaoCode, const CLivery &livery) const
{
return this->findBy(&CAircraftModel::getAircraftIcaoCode, aircraftIcaoCode, &CAircraftModel::getLivery, livery);
}
CAircraftModelList CAircraftModelList::findByLiveryCode(const CLivery &livery) const CAircraftModelList CAircraftModelList::findByLiveryCode(const CLivery &livery) const
{ {
if (!livery.hasCombinedCode()) { return CAircraftModelList(); } if (!livery.hasCombinedCode()) { return CAircraftModelList(); }
@@ -179,6 +189,14 @@ namespace BlackMisc
}); });
} }
CAircraftModelList CAircraftModelList::findByDistributor(const CDistributor &distributor) const
{
return this->findBy([ & ](const CAircraftModel & model)
{
return model.getDistributor() == distributor;
});
}
CAircraftModelList CAircraftModelList::findWithAircraftDesignator() const CAircraftModelList CAircraftModelList::findWithAircraftDesignator() const
{ {
return this->findBy([](const CAircraftModel & model) return this->findBy([](const CAircraftModel & model)
@@ -572,6 +590,21 @@ namespace BlackMisc
return diff; return diff;
} }
int CAircraftModelList::removeByDistributor(const CDistributor &distributor)
{
return this->removeIf(&CAircraftModel::getDistributor, distributor);
}
int CAircraftModelList::removeByAircraftAndLivery(const CAircraftIcaoCode &aircraftIcao, const CLivery &livery)
{
return this->removeIf(&CAircraftModel::getAircraftIcaoCode, aircraftIcao, &CAircraftModel::getLivery, livery);
}
int CAircraftModelList::removeByAircraftAndAirline(const CAircraftIcaoCode &aircraftIcao, const CAirlineIcaoCode &airline)
{
return this->removeIf(&CAircraftModel::getAircraftIcaoCode, aircraftIcao, &CAircraftModel::getAirlineIcaoCode, airline);
}
bool CAircraftModelList::replaceOrAddModelWithString(const CAircraftModel &addOrReplaceModel, Qt::CaseSensitivity sensitivity) bool CAircraftModelList::replaceOrAddModelWithString(const CAircraftModel &addOrReplaceModel, Qt::CaseSensitivity sensitivity)
{ {
bool r = false; bool r = false;

View File

@@ -121,21 +121,30 @@ namespace BlackMisc
//! Find by a given list of models by strings //! Find by a given list of models by strings
CAircraftModelList findByModelStrings(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity) const; CAircraftModelList findByModelStrings(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity) const;
//! Find by a given list of models trings //! Find by excluding given list of models strings
CAircraftModelList findByNotInModelStrings(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity) const; CAircraftModelList findByNotInModelStrings(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity) const;
//! Find by model string //! Find by ICAO designators
CAircraftModelList findByIcaoDesignators(const Aviation::CAircraftIcaoCode &aircraftIcaoCode, const Aviation::CAirlineIcaoCode &airlineIcaoCode) const; CAircraftModelList findByIcaoDesignators(const Aviation::CAircraftIcaoCode &aircraftIcaoCode, const Aviation::CAirlineIcaoCode &airlineIcaoCode) const;
//! Find by model string //! Find by ICAO of aircraft and airline
CAircraftModelList findByAircraftAndAirline(const Aviation::CAircraftIcaoCode &aircraftIcaoCode, const Aviation::CAirlineIcaoCode &airlineIcaoCode) const;
//! Find by designator and livery code
CAircraftModelList findByAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const; CAircraftModelList findByAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const;
//! Find by aircraft and livery
CAircraftModelList findByAircraftAndLivery(const Aviation::CAircraftIcaoCode &aircraftIcaoCode, const Aviation::CLivery &livery) const;
//! Find by livery code //! Find by livery code
CAircraftModelList findByLiveryCode(const Aviation::CLivery &livery) const; CAircraftModelList findByLiveryCode(const Aviation::CLivery &livery) const;
//! Models with file name //! Models with file name
CAircraftModelList findWithFileName() const; CAircraftModelList findWithFileName() const;
//! All models from given distributors
CAircraftModelList findByDistributor(const CDistributor &distributor) const;
//! All models from given distributors //! All models from given distributors
CAircraftModelList findByDistributors(const CDistributorList &distributors) const; CAircraftModelList findByDistributors(const CDistributorList &distributors) const;
@@ -247,6 +256,18 @@ namespace BlackMisc
//! \return number of elements removed //! \return number of elements removed
int removeIfExcluded(); int removeIfExcluded();
//! Remove by distributor
//! \return number of elements removed
int removeByDistributor(const CDistributor &distributor);
//! Remove if aircraft and livery
//! \return number of elements removed
int removeByAircraftAndLivery(const Aviation::CAircraftIcaoCode &aircraftIcao, const Aviation::CLivery &livery);
//! Remove if aircraft and airline
//! \return number of elements removed
int removeByAircraftAndAirline(const Aviation::CAircraftIcaoCode &aircraftIcao, const Aviation::CAirlineIcaoCode &airline);
//! Replace or add based on model string //! Replace or add based on model string
//! \return element removed? //! \return element removed?
bool replaceOrAddModelWithString(const CAircraftModel &addOrReplaceModel, Qt::CaseSensitivity sensitivity); bool replaceOrAddModelWithString(const CAircraftModel &addOrReplaceModel, Qt::CaseSensitivity sensitivity);