Ref T442, ATC station list split per suffix

This commit is contained in:
Klaus Basan
2018-12-04 19:33:29 +01:00
parent 8c74d8c386
commit 4dae61c171
2 changed files with 25 additions and 0 deletions

View File

@@ -138,5 +138,25 @@ namespace BlackMisc
stations.sortByAtcSuffixSortOrderAndDistance();
return stations;
}
QHash<QString, CAtcStationList> CAtcStationList::splitPerSuffix(bool sort) const
{
if (this->isEmpty()) { return QHash<QString, CAtcStationList>(); }
const CAtcStationList stations = sort ? this->sortedByAtcSuffixSortOrderAndDistance() : * this;
QString suffix;
QHash<QString, CAtcStationList> split;
for (const CAtcStation &s : stations)
{
const QString currentSuffix = s.getCallsignSuffix();
if (suffix != currentSuffix)
{
suffix = currentSuffix;
split[currentSuffix] = CAtcStationList();
}
split[currentSuffix].push_back(s);
}
return split;
}
} // namespace
} // namespace

View File

@@ -24,6 +24,7 @@
#include "blackmisc/variant.h"
#include <QMetaType>
#include <QHash>
namespace BlackMisc
{
@@ -81,6 +82,10 @@ namespace BlackMisc
//! Sorted by ATC suffix sort order and distance
CAtcStationList sortedByAtcSuffixSortOrderAndDistance() const;
//! Split per suffix
//! \remark sort can be disabled if already sorted
QHash<QString, CAtcStationList> splitPerSuffix(bool sort = true) const;
};
} //namespace
} // namespace