Ref T67, utility functions for simulator info/model list

This commit is contained in:
Klaus Basan
2017-05-07 03:17:04 +02:00
parent 1e0e40186c
commit 5558cee4d8
4 changed files with 30 additions and 0 deletions

View File

@@ -280,6 +280,22 @@ namespace BlackMisc
});
}
bool CAircraftModelList::containsMatchingSimulator(const CSimulatorInfo &simulators) const
{
return this->containsBy([ & ](const CAircraftModel & model)
{
return model.matchesSimulator(simulators);
});
}
bool CAircraftModelList::containsNotMatchingSimulator(const CSimulatorInfo &simulators) const
{
return this->containsBy([ & ](const CAircraftModel & model)
{
return !model.matchesSimulator(simulators);
});
}
CAircraftModelList CAircraftModelList::findByDistributors(const CDistributorList &distributors) const
{
if (distributors.isEmpty()) { return CAircraftModelList(); }

View File

@@ -80,6 +80,12 @@ namespace BlackMisc
//! Contains any model with aircraft and airline ICAO designator
bool containsModelsWithAircraftAndAirlineIcaoDesignator(const QString &aircraftDesignator, const QString &airlineDesignator) const;
//! Contains any model matching any of of passed simulators
bool containsMatchingSimulator(const CSimulatorInfo &simulators) const;
//! Contains any model not matching any of of passed simulators
bool containsNotMatchingSimulator(const CSimulatorInfo &simulators) const;
//! Find by model string
//! \remark normally CAircraftModelList::findFirstByModelStringOrDefault would be used
CAircraftModelList findByModelString(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const;

View File

@@ -169,6 +169,11 @@ namespace BlackMisc
return set;
}
void CSimulatorInfo::invertSimulators()
{
m_simulator = (m_simulator ^ static_cast<int>(All)) & static_cast<int>(All);
}
const QString &CSimulatorInfo::toPluginIdentifier() const
{
static const QString e;

View File

@@ -153,6 +153,9 @@ namespace BlackMisc
//! As a set of single simulator info objects
QSet<CSimulatorInfo> asSingleSimulatorSet() const;
//! All simulators selected become unselected and vice versa
void invertSimulators();
//! To plugin indentifier, empty string if not single simulator
const QString &toPluginIdentifier() const;