mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
Issue #114 Use CSetBuilder and CMapBuilder
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#include "blackmisc/timestampobjectlist.h"
|
||||
#include "blackmisc/jsonexception.h"
|
||||
#include "blackmisc/db/datastore.h"
|
||||
#include "blackmisc/setbuilder.h"
|
||||
#include "blackmisc/mapbuilder.h"
|
||||
#include <QJsonArray>
|
||||
#include <QSet>
|
||||
#include <QMap>
|
||||
@@ -101,7 +103,7 @@ namespace BlackMisc
|
||||
//! All keys as set
|
||||
QSet<KEYTYPE> toDbKeySet() const
|
||||
{
|
||||
QSet<KEYTYPE> keys;
|
||||
CSetBuilder<KEYTYPE> keys;
|
||||
for (const OBJ &obj : ITimestampObjectList<OBJ, CONTAINER>::container())
|
||||
{
|
||||
if (!obj.hasValidDbKey()) { continue; }
|
||||
@@ -113,7 +115,7 @@ namespace BlackMisc
|
||||
//! As map with DB key/object
|
||||
QMap<KEYTYPE, OBJ> toDbKeyValueMap() const
|
||||
{
|
||||
QMap<KEYTYPE, OBJ> map;
|
||||
CMapBuilder<KEYTYPE, OBJ> map;
|
||||
for (const OBJ &obj : ITimestampObjectList<OBJ, CONTAINER>::container())
|
||||
{
|
||||
if (!obj.hasValidDbKey()) { continue; }
|
||||
@@ -125,7 +127,7 @@ namespace BlackMisc
|
||||
//! All keys as string set (also integer keys will be converted to string)
|
||||
QSet<QString> toDbKeyStringSet() const
|
||||
{
|
||||
QSet<QString> keys;
|
||||
CSetBuilder<QString> keys;
|
||||
for (const OBJ &obj : ITimestampObjectList<OBJ, CONTAINER>::container())
|
||||
{
|
||||
if (!obj.hasValidDbKey()) { continue; }
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "blackmisc/stringutils.h"
|
||||
#include "blackmisc/network/ping.h"
|
||||
#include "blackmisc/range.h"
|
||||
#include "blackmisc/setbuilder.h"
|
||||
#include "blackconfig/buildconfig.h"
|
||||
#include <QCoreApplication>
|
||||
#include <QDir>
|
||||
@@ -182,7 +183,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CDirectoryUtils::fileNamesToQSet(const QFileInfoList &fileInfoList)
|
||||
{
|
||||
QSet<QString> sl;
|
||||
CSetBuilder<QString> sl;
|
||||
for (const QFileInfo &info : fileInfoList)
|
||||
{
|
||||
sl.insert(info.fileName());
|
||||
@@ -192,7 +193,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CDirectoryUtils::canonicalFileNamesToQSet(const QFileInfoList &fileInfoList)
|
||||
{
|
||||
QSet<QString> sl;
|
||||
CSetBuilder<QString> sl;
|
||||
for (const QFileInfo &info : fileInfoList)
|
||||
{
|
||||
sl.insert(info.canonicalFilePath());
|
||||
@@ -202,8 +203,8 @@ namespace BlackMisc
|
||||
|
||||
const QSet<QString> CDirectoryUtils::filesToCanonicalNames(const QSet<QString> &fileNames, const QSet<QString> &canonicalFileNames)
|
||||
{
|
||||
QSet<QString> found;
|
||||
if (fileNames.isEmpty()) return found;
|
||||
CSetBuilder<QString> found;
|
||||
if (fileNames.isEmpty()) return {};
|
||||
for (const QString &canonical : canonicalFileNames)
|
||||
{
|
||||
if (canonical.endsWith('/')) continue;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#include "blackmisc/fileutils.h"
|
||||
#include "blackmisc/stringutils.h"
|
||||
#include "blackmisc/setbuilder.h"
|
||||
#include "blackconfig/buildconfig.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
@@ -497,7 +498,7 @@ namespace BlackMisc
|
||||
const Qt::CaseSensitivity cs = osFileNameCaseSensitivity();
|
||||
const bool isCs = isFileNameCaseSensitive();
|
||||
|
||||
QSet<QString> machines;
|
||||
CSetBuilder<QString> machines;
|
||||
QString lastMachine;
|
||||
|
||||
for (const QString &p : paths)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#include "blackmisc/network/entityflags.h"
|
||||
#include "blackmisc/verify.h"
|
||||
#include "blackmisc/setbuilder.h"
|
||||
|
||||
#include <QStringList>
|
||||
#include <QtGlobal>
|
||||
@@ -207,7 +208,7 @@ namespace BlackMisc
|
||||
|
||||
CEntityFlags::EntitySet CEntityFlags::asSingleEntities(Entity entities)
|
||||
{
|
||||
QSet<CEntityFlags::Entity> s;
|
||||
CSetBuilder<CEntityFlags::Entity> s;
|
||||
CEntityFlags::Entity currentEntity = iterateDbEntities(entities);
|
||||
while (currentEntity != NoEntity)
|
||||
{
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "blackmisc/directoryutils.h"
|
||||
#include "blackmisc/statusmessage.h"
|
||||
#include "blackmisc/stringutils.h"
|
||||
#include "blackmisc/setbuilder.h"
|
||||
#include "blackconfig/buildconfig.h"
|
||||
|
||||
#include <QStringBuilder>
|
||||
@@ -1057,7 +1058,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CAircraftModelList::getModelStringSet() const
|
||||
{
|
||||
QSet<QString> ms;
|
||||
CSetBuilder<QString> ms;
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
if (!model.hasModelString()) { continue; }
|
||||
@@ -1233,7 +1234,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CAircraftModelList::getAircraftDesignators() const
|
||||
{
|
||||
QSet<QString> designators;
|
||||
CSetBuilder<QString> designators;
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
if (!model.hasAircraftDesignator()) { continue; }
|
||||
@@ -1244,8 +1245,8 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CAircraftModelList::getAircraftDesignatorsForAirline(const CAirlineIcaoCode &airlineCode) const
|
||||
{
|
||||
QSet<QString> designators;
|
||||
if (!airlineCode.hasValidDesignator()) { return designators; }
|
||||
CSetBuilder<QString> designators;
|
||||
if (!airlineCode.hasValidDesignator()) { return {}; }
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
if (model.getAirlineIcaoCode() != airlineCode) { continue; }
|
||||
@@ -1286,7 +1287,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CAircraftModelList::getAirlineDesignators() const
|
||||
{
|
||||
QSet<QString> designators;
|
||||
CSetBuilder<QString> designators;
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
if (!model.hasAirlineDesignator()) { continue; }
|
||||
@@ -1297,7 +1298,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CAircraftModelList::getAirlineVDesignators() const
|
||||
{
|
||||
QSet<QString> designators;
|
||||
CSetBuilder<QString> designators;
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
if (!model.hasAirlineDesignator()) { continue; }
|
||||
@@ -1332,7 +1333,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CAircraftModelList::getCombinedTypes() const
|
||||
{
|
||||
QSet<QString> combinedCodes;
|
||||
CSetBuilder<QString> combinedCodes;
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
const QString ct = model.getAircraftIcaoCode().getCombinedType();
|
||||
@@ -1345,7 +1346,7 @@ namespace BlackMisc
|
||||
QSet<QString> CAircraftModelList::getAllFileNames() const
|
||||
{
|
||||
const bool cs = CFileUtils::isFileNameCaseSensitive();
|
||||
QSet<QString> files;
|
||||
CSetBuilder<QString> files;
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
if (!model.hasFileName()) { continue; }
|
||||
@@ -1357,7 +1358,7 @@ namespace BlackMisc
|
||||
QSet<QString> CAircraftModelList::getAllUNCFileNames() const
|
||||
{
|
||||
const bool cs = CFileUtils::isFileNameCaseSensitive();
|
||||
QSet<QString> files;
|
||||
CSetBuilder<QString> files;
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
if (!model.hasFileName()) { continue; }
|
||||
@@ -1378,7 +1379,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CAircraftModelList::getAicraftAndAirlineDesignators(bool withDbId) const
|
||||
{
|
||||
QSet<QString> str;
|
||||
CSetBuilder<QString> str;
|
||||
for (const CAircraftModel &model : *this)
|
||||
{
|
||||
const QString s = (model.hasAircraftDesignator() ?
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "blackmisc/fileutils.h"
|
||||
#include "blackmisc/json.h"
|
||||
#include "blackmisc/logcategories.h"
|
||||
#include "blackmisc/setbuilder.h"
|
||||
|
||||
#include <QStringList>
|
||||
#include <QStringBuilder>
|
||||
@@ -148,7 +149,7 @@ namespace BlackMisc
|
||||
CStatusMessageList msgs;
|
||||
msgs.push_back(CStatusMessage(cats).validationInfo(u"DB models: %1") << dbModels.size());
|
||||
|
||||
QSet<QString> unchangedCG;
|
||||
CSetBuilder<QString> unchangedCG;
|
||||
for (const QString &modelString : m_modelStringVsCG.keys())
|
||||
{
|
||||
const CAircraftModel dbModel = dbModels.findFirstByModelStringOrDefault(modelString);
|
||||
@@ -161,7 +162,7 @@ namespace BlackMisc
|
||||
}
|
||||
}
|
||||
|
||||
QSet<QString> unchangedSim;
|
||||
CSetBuilder<QString> unchangedSim;
|
||||
for (const QString &modelString : m_modelStringVsSimulatorInfo.keys())
|
||||
{
|
||||
const CAircraftModel dbModel = dbModels.findFirstByModelStringOrDefault(modelString);
|
||||
@@ -177,14 +178,16 @@ namespace BlackMisc
|
||||
// remove
|
||||
if (!unchangedCG.isEmpty())
|
||||
{
|
||||
msgs.push_back(CStatusMessage(cats).validationInfo(u"Removing unchanged CGs: %1") << unchangedCG.size());
|
||||
for (const QString &m : unchangedCG) { m_modelStringVsCG.remove(m); }
|
||||
QList<QString> unchangedCGList = std::move(unchangedCG);
|
||||
msgs.push_back(CStatusMessage(cats).validationInfo(u"Removing unchanged CGs: %1") << unchangedCGList.size());
|
||||
for (const QString &m : unchangedCGList) { m_modelStringVsCG.remove(m); }
|
||||
}
|
||||
|
||||
if (!unchangedSim.isEmpty())
|
||||
{
|
||||
msgs.push_back(CStatusMessage(cats).validationInfo(u"Removing unchanged simulators: %1") << unchangedSim.size());
|
||||
for (const QString &m : unchangedSim) { m_modelStringVsSimulatorInfo.remove(m); }
|
||||
QList<QString> unchangedSimList = std::move(unchangedSim);
|
||||
msgs.push_back(CStatusMessage(cats).validationInfo(u"Removing unchanged simulators: %1") << unchangedSimList.size());
|
||||
for (const QString &m : unchangedSimList) { m_modelStringVsSimulatorInfo.remove(m); }
|
||||
}
|
||||
|
||||
msgs.push_back(CStatusMessage(this).validationInfo(this->getSummary()));
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "stringutils.h"
|
||||
#include "blackmisc/predicates.h"
|
||||
#include "blackmisc/range.h"
|
||||
#include "blackmisc/setbuilder.h"
|
||||
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackMisc::Simulation;
|
||||
@@ -57,7 +58,7 @@ namespace BlackMisc
|
||||
|
||||
QSet<QString> CAircraftCfgEntriesList::getTitleSetUpperCase() const
|
||||
{
|
||||
QSet<QString> titlesUc;
|
||||
CSetBuilder<QString> titlesUc;
|
||||
for (const CAircraftCfgEntries &entries : *this)
|
||||
{
|
||||
titlesUc.insert(entries.getTitle().toUpper());
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "blackmisc/dbusserver.h"
|
||||
#include "blackmisc/iterator.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
#include "blackmisc/setbuilder.h"
|
||||
#include "blackconfig/buildconfig.h"
|
||||
|
||||
#include "dbus/dbus.h"
|
||||
@@ -742,14 +743,15 @@ namespace BlackSimPlugin
|
||||
|
||||
// comment KB 2019-06
|
||||
// a package is one xsb_aircraft.txt file BB has 9, X-CSL has 76
|
||||
QSet<QString> superpackages;
|
||||
CSetBuilder<QString> superpackages;
|
||||
for (const Prefix &package : std::as_const(packages))
|
||||
{
|
||||
superpackages.insert(package.parent());
|
||||
}
|
||||
QStringList superpackagesList = superpackages;
|
||||
|
||||
const QDir simDir = getSimulatorSettings().getSimulatorDirectoryOrDefault();
|
||||
for (const QString &package : std::as_const(superpackages))
|
||||
for (const QString &package : superpackagesList)
|
||||
{
|
||||
if (CDirectoryUtils::isSameOrSubDirectoryOf(package, simDir))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user