Issue #114 Use CSetBuilder and CMapBuilder

This commit is contained in:
Mat Sutcliffe
2021-08-26 23:13:23 +01:00
parent f0db8b567f
commit 2aeacf49a7
14 changed files with 63 additions and 50 deletions

View File

@@ -8,6 +8,7 @@
#include "blackmisc/aviation/aircraftcategorylist.h"
#include "blackmisc/range.h"
#include "blackmisc/setbuilder.h"
#include <QJsonObject>
#include <QJsonValue>
@@ -49,7 +50,7 @@ namespace BlackMisc
QSet<QString> CAircraftCategoryList::getLevelStrings() const
{
QSet<QString> levels;
CSetBuilder<QString> levels;
for (const CAircraftCategory &category : *this)
{
levels.insert(category.getLevelString());
@@ -66,27 +67,25 @@ namespace BlackMisc
QList<int> CAircraftCategoryList::getFirstLevels() const
{
QSet<int> levels;
CSetBuilder<int> levels;
for (const CAircraftCategory &category : *this)
{
levels.insert(category.getFirstLevel());
}
levels.remove(0);
QList<int> ll = levels.values();
std::sort(ll.begin(), ll.end());
QList<int> ll = levels;
ll.removeOne(0);
return ll;
}
QList<int> CAircraftCategoryList::getSecondLevels() const
{
QSet<int> levels;
CSetBuilder<int> levels;
for (const CAircraftCategory &category : *this)
{
levels.insert(category.getSecondLevel());
}
levels.remove(0);
QList<int> ll = levels.values();
std::sort(ll.begin(), ll.end());
QList<int> ll = levels;
ll.removeOne(0);
return ll;
}

View File

@@ -9,6 +9,7 @@
#include "aircrafticaocodelist.h"
#include "aircraftcategorylist.h"
#include "blackmisc/range.h"
#include "blackmisc/setbuilder.h"
#include <QJsonObject>
#include <QJsonValue>
@@ -256,7 +257,7 @@ namespace BlackMisc
QSet<QString> CAircraftIcaoCodeList::allDesignators(bool noUnspecified) const
{
QSet<QString> c;
CSetBuilder<QString> c;
for (const CAircraftIcaoCode &icao : *this)
{
if (noUnspecified && !icao.hasKnownDesignator()) { continue; }
@@ -268,7 +269,7 @@ namespace BlackMisc
QSet<QString> CAircraftIcaoCodeList::allDesignatorsAndKey(bool noUnspecified) const
{
QSet<QString> c;
CSetBuilder<QString> c;
for (const CAircraftIcaoCode &icao : *this)
{
if (noUnspecified && !icao.hasKnownDesignator()) { continue; }
@@ -280,7 +281,7 @@ namespace BlackMisc
QSet<QString> CAircraftIcaoCodeList::allFamilies() const
{
QSet<QString> c;
CSetBuilder<QString> c;
for (const CAircraftIcaoCode &icao : *this)
{
if (!icao.hasFamily()) { continue; }
@@ -292,7 +293,7 @@ namespace BlackMisc
QSet<QString> CAircraftIcaoCodeList::allManufacturers(bool onlyKnownDesignators) const
{
QSet<QString> c;
CSetBuilder<QString> c;
for (const CAircraftIcaoCode &icao : *this)
{
if (onlyKnownDesignators && !icao.hasKnownDesignator()) { continue; }

View File

@@ -18,6 +18,7 @@
#include "blackmisc/swiftdirectories.h"
#include "blackmisc/directoryutils.h"
#include "blackmisc/verify.h"
#include "blackmisc/setbuilder.h"
#include <QJsonValue>
#include <QRegularExpression>
@@ -503,7 +504,7 @@ namespace BlackMisc
QDir dir(CSwiftDirectories::imagesAirlinesDirectory());
Q_ASSERT_X(dir.exists(), Q_FUNC_INFO, "image directory missing");
QSet<int> ids;
CSetBuilder<int> ids;
dir.setFilter(QDir::Files | QDir::NoSymLinks);
dir.setSorting(QDir::Name);
for (const QFileInfo &fileInfo : dir.entryInfoList())

View File

@@ -10,6 +10,7 @@
#include "blackmisc/logcategories.h"
#include "blackmisc/country.h"
#include "blackmisc/range.h"
#include "blackmisc/setbuilder.h"
#include <QJsonObject>
#include <QJsonValue>
@@ -359,7 +360,7 @@ namespace BlackMisc
QSet<QString> CAirlineIcaoCodeList::allDesignators() const
{
QSet<QString> designators;
CSetBuilder<QString> designators;
for (const CAirlineIcaoCode &icao : *this)
{
if (!icao.hasValidDesignator()) { continue; }
@@ -370,7 +371,7 @@ namespace BlackMisc
QSet<QString> CAirlineIcaoCodeList::allVDesignators() const
{
QSet<QString> designators;
CSetBuilder<QString> designators;
for (const CAirlineIcaoCode &icao : *this)
{
if (!icao.hasValidDesignator()) { continue; }

View File

@@ -9,6 +9,7 @@
#include "blackmisc/aviation/airportlist.h"
#include "blackmisc/mixin/mixincompare.h"
#include "blackmisc/range.h"
#include "blackmisc/setbuilder.h"
#include <QString>
#include <tuple>
@@ -101,18 +102,16 @@ namespace BlackMisc
return names;
}
QStringList CAirportList::allLocations(bool sorted) const
QStringList CAirportList::allLocations() const
{
QSet<QString> locations;
CSetBuilder<QString> locations;
for (const CAirport &airport : *this)
{
if (airport.getLocation().isEmpty()) { continue; }
locations.insert(airport.getLocation());
}
QStringList locs = locations.values();
if (sorted) { locs.sort(); }
return locs;
return locations;
}
QStringList CAirportList::allLocationsPlusOptionalDescription(bool sorted) const

View File

@@ -68,7 +68,7 @@ namespace BlackMisc
//! All locations
//! \remark less locations than airports, since a location (e.g. New Yorrk) homes multiple airports
QStringList allLocations(bool sorted) const;
QStringList allLocations() const;
//! All locations plus optional description
QStringList allLocationsPlusOptionalDescription(bool sorted) const;