Ref T701, utility functions

This commit is contained in:
Klaus Basan
2019-07-08 01:02:42 +02:00
committed by Mat Sutcliffe
parent e389d5ac83
commit 6e99bf2e02
3 changed files with 39 additions and 1 deletions

View File

@@ -155,6 +155,9 @@ namespace BlackMisc
//! Avoid compiler warnings when using with int
int sizeInt() const { return static_cast<int>(this->size()); }
//! Convenience function
QString sizeString() const { return QString::number(m_impl.size()); }
//! Returns true if the sequence is empty.
bool empty() const { return m_impl.isEmpty(); }
@@ -412,7 +415,8 @@ namespace BlackMisc
}
//! Reversed order
CSequence reversed() const {
CSequence reversed() const
{
CSequence result = *this;
result.reverse();
return result;

View File

@@ -525,6 +525,34 @@ namespace BlackMisc
return icaos;
}
QMap<CAirlineIcaoCode, int> CAircraftModelList::countPerAirlineIcao() const
{
QMap<CAirlineIcaoCode, int> icaos;
for (const CAircraftModel &model : *this)
{
if (!model.hasAirlineDesignator()) { continue; }
if (icaos.contains(model.getAirlineIcaoCode()))
{
icaos[model.getAirlineIcaoCode()]++;
}
else
{
icaos[model.getAirlineIcaoCode()] = 1;
}
}
return icaos;
}
CAirlineIcaoCode CAircraftModelList::getAirlineWithMaxCount() const
{
const QMap<CAirlineIcaoCode, int> ac = this->countPerAirlineIcao();
if (ac.size() < 1) { return {}; }
if (ac.size() == 1) { return ac.firstKey(); }
const QList<int> values = ac.values();
const int max = *std::max_element(values.begin(), values.end());
return ac.key(max);
}
QString CAircraftModelList::findModelIconPathByModelString(const QString &modelString) const
{
if (modelString.isEmpty()) { return {}; }

View File

@@ -364,6 +364,12 @@ namespace BlackMisc
//! Aircraft ICAO plus count
QMap<BlackMisc::Aviation::CAircraftIcaoCode, int> countPerAircraftIcao() const;
//! Airline ICAO plus count
QMap<BlackMisc::Aviation::CAirlineIcaoCode, int> countPerAirlineIcao() const;
//! The airline with the max count
Aviation::CAirlineIcaoCode getAirlineWithMaxCount() const;
//! Which simulator(s) have the most entries?
CSimulatorInfo simulatorsWithMaxEntries() const;