Ref T472, support for aircraft category flag

This commit is contained in:
Klaus Basan
2019-01-31 23:59:32 +01:00
committed by Mat Sutcliffe
parent bada0c2f59
commit 210df12889
5 changed files with 54 additions and 48 deletions

View File

@@ -16,7 +16,8 @@ namespace BlackCore
CWebReaderFlags::WebReader CWebReaderFlags::entitiesToReaders(CEntityFlags::Entity entities) CWebReaderFlags::WebReader CWebReaderFlags::entitiesToReaders(CEntityFlags::Entity entities)
{ {
WebReader f = None; WebReader f = None;
if (entities.testFlag(CEntityFlags::AircraftIcaoEntity) || entities.testFlag(CEntityFlags::AirlineIcaoEntity) || entities.testFlag(CEntityFlags::CountryEntity)) if (entities.testFlag(CEntityFlags::AircraftIcaoEntity) || entities.testFlag(CEntityFlags::AirlineIcaoEntity) ||
entities.testFlag(CEntityFlags::CountryEntity) || entities.testFlag(CEntityFlags::AircraftCategoryEntity))
{ {
f |= IcaoDataReader; f |= IcaoDataReader;
} }
@@ -32,10 +33,10 @@ namespace BlackCore
} }
if (entities.testFlag(CEntityFlags::DbInfoObjectEntity)) { f |= DbInfoDataReader; } if (entities.testFlag(CEntityFlags::DbInfoObjectEntity)) { f |= DbInfoDataReader; }
if (entities.testFlag(CEntityFlags::BookingEntity)) { f |= VatsimBookingReader; } if (entities.testFlag(CEntityFlags::BookingEntity)) { f |= VatsimBookingReader; }
if (entities.testFlag(CEntityFlags::VatsimDataFile)) { f |= VatsimDataReader; } if (entities.testFlag(CEntityFlags::VatsimDataFile)) { f |= VatsimDataReader; }
if (entities.testFlag(CEntityFlags::VatsimStatusFile)) { f |= VatsimStatusReader; } if (entities.testFlag(CEntityFlags::VatsimStatusFile)) { f |= VatsimStatusReader; }
if (entities.testFlag(CEntityFlags::MetarEntity)) { f |= VatsimMetarReader; } if (entities.testFlag(CEntityFlags::MetarEntity)) { f |= VatsimMetarReader; }
return f; return f;
} }
@@ -48,14 +49,14 @@ namespace BlackCore
CEntityFlags::Entity CWebReaderFlags::allEntitiesForReaders(WebReader readers) CEntityFlags::Entity CWebReaderFlags::allEntitiesForReaders(WebReader readers)
{ {
CEntityFlags::Entity entities = CEntityFlags::NoEntity; CEntityFlags::Entity entities = CEntityFlags::NoEntity;
if (readers.testFlag(IcaoDataReader)) { entities |= CEntityFlags::AllIcaoAndCountries; } if (readers.testFlag(IcaoDataReader)) { entities |= CEntityFlags::AllIcaoAndCountries; }
if (readers.testFlag(ModelReader)) { entities |= CEntityFlags::DistributorLiveryModel; } if (readers.testFlag(ModelReader)) { entities |= CEntityFlags::DistributorLiveryModel; }
if (readers.testFlag(AirportReader)) { entities |= CEntityFlags::AirportEntity; } if (readers.testFlag(AirportReader)) { entities |= CEntityFlags::AirportEntity; }
if (readers.testFlag(DbInfoDataReader)) { entities |= CEntityFlags::DbInfoObjectEntity; } if (readers.testFlag(DbInfoDataReader)) { entities |= CEntityFlags::DbInfoObjectEntity; }
if (readers.testFlag(VatsimBookingReader)) { entities |= CEntityFlags::BookingEntity; } if (readers.testFlag(VatsimBookingReader)) { entities |= CEntityFlags::BookingEntity; }
if (readers.testFlag(VatsimMetarReader)) { entities |= CEntityFlags::MetarEntity; } if (readers.testFlag(VatsimMetarReader)) { entities |= CEntityFlags::MetarEntity; }
if (readers.testFlag(VatsimDataReader)) { entities |= CEntityFlags::VatsimDataFile; } if (readers.testFlag(VatsimDataReader)) { entities |= CEntityFlags::VatsimDataFile; }
if (readers.testFlag(VatsimStatusReader)) { entities |= CEntityFlags::VatsimStatusFile; } if (readers.testFlag(VatsimStatusReader)) { entities |= CEntityFlags::VatsimStatusFile; }
return entities; return entities;
} }
@@ -76,9 +77,9 @@ namespace BlackCore
int CWebReaderFlags::numberOfReaders(WebReader readers) int CWebReaderFlags::numberOfReaders(WebReader readers)
{ {
int n = 0; int n = 0;
if (readers.testFlag(ModelReader)) { n++; } if (readers.testFlag(ModelReader)) { n++; }
if (readers.testFlag(IcaoDataReader)) { n++; } if (readers.testFlag(IcaoDataReader)) { n++; }
if (readers.testFlag(AirportReader)) { n++; } if (readers.testFlag(AirportReader)) { n++; }
if (readers.testFlag(DbInfoDataReader)) { n++; } if (readers.testFlag(DbInfoDataReader)) { n++; }
return n; return n;
} }

View File

@@ -159,7 +159,7 @@ namespace BlackGui
void CDataInfoAreaComponent::requestUpdateOfAllDbData() void CDataInfoAreaComponent::requestUpdateOfAllDbData()
{ {
sGui->getWebDataServices()->triggerLoadingDirectlyFromDb(CEntityFlags::AllDbEntitiesNoInfoObjectsNoAirports, QDateTime()); sGui->getWebDataServices()->triggerLoadingDirectlyFromDb(CEntityFlags::AllDbEntitiesNoInfoObjectsNoAirportsAndCategories, QDateTime());
} }
void CDataInfoAreaComponent::requestUpdatedData(CEntityFlags::Entity entity) void CDataInfoAreaComponent::requestUpdatedData(CEntityFlags::Entity entity)

View File

@@ -142,7 +142,7 @@ namespace BlackMisc
const QStringList &CDbInfo::sharedFileNames() const QStringList &CDbInfo::sharedFileNames()
{ {
static const QStringList names({"aircrafticao.json", "airlineicao.json", "airports.json", "countries.json", "distributors.json", "liveries.json", "models.json" }); static const QStringList names({"aircrafticao.json", "airlineicao.json", "airports.json", "countries.json", "distributors.json", "liveries.json", "models.json", "aircraftcategory.json" });
return names; return names;
} }
@@ -154,7 +154,7 @@ namespace BlackMisc
const QStringList &CDbInfo::serviceNames() const QStringList &CDbInfo::serviceNames()
{ {
static const QStringList names({"jsonaircrafticao.php", "jsonairlineicao.php", "jsonairport.php", "jsoncountry.php", "jsondistributor.php", "jsonlivery.php", "jsonaircraftmodel.php" }); static const QStringList names({"jsonaircrafticao.php", "jsonairlineicao.php", "jsonairport.php", "jsoncountry.php", "jsondistributor.php", "jsonlivery.php", "jsonaircraftmodel.php", "jsonaircraftcategory.php" });
return names; return names;
} }
@@ -163,15 +163,15 @@ namespace BlackMisc
static const QString empty; static const QString empty;
switch (entity) switch (entity)
{ {
case CEntityFlags::AircraftIcaoEntity: return sharedFileNames().at(0); case CEntityFlags::AircraftIcaoEntity: return sharedFileNames().at(0);
case CEntityFlags::AirlineIcaoEntity: return sharedFileNames().at(1); case CEntityFlags::AirlineIcaoEntity: return sharedFileNames().at(1);
case CEntityFlags::AirportEntity: return sharedFileNames().at(2); case CEntityFlags::AirportEntity: return sharedFileNames().at(2);
case CEntityFlags::CountryEntity: return sharedFileNames().at(3); case CEntityFlags::CountryEntity: return sharedFileNames().at(3);
case CEntityFlags::DistributorEntity: return sharedFileNames().at(4); case CEntityFlags::DistributorEntity: return sharedFileNames().at(4);
case CEntityFlags::LiveryEntity: return sharedFileNames().at(5); case CEntityFlags::LiveryEntity: return sharedFileNames().at(5);
case CEntityFlags::ModelEntity: return sharedFileNames().at(6); case CEntityFlags::ModelEntity: return sharedFileNames().at(6);
default: case CEntityFlags::AircraftCategoryEntity: return sharedFileNames().at(7);
break; default: break;
} }
return empty; return empty;
} }
@@ -182,14 +182,14 @@ namespace BlackMisc
switch (entity) switch (entity)
{ {
case CEntityFlags::AircraftIcaoEntity: return serviceNames().at(0); case CEntityFlags::AircraftIcaoEntity: return serviceNames().at(0);
case CEntityFlags::AirlineIcaoEntity: return serviceNames().at(1); case CEntityFlags::AirlineIcaoEntity: return serviceNames().at(1);
case CEntityFlags::AirportEntity: return serviceNames().at(2); case CEntityFlags::AirportEntity: return serviceNames().at(2);
case CEntityFlags::CountryEntity: return serviceNames().at(3); case CEntityFlags::CountryEntity: return serviceNames().at(3);
case CEntityFlags::DistributorEntity: return serviceNames().at(4); case CEntityFlags::DistributorEntity: return serviceNames().at(4);
case CEntityFlags::LiveryEntity: return serviceNames().at(5); case CEntityFlags::LiveryEntity: return serviceNames().at(5);
case CEntityFlags::ModelEntity: return serviceNames().at(6); case CEntityFlags::ModelEntity: return serviceNames().at(6);
default: case CEntityFlags::AircraftCategoryEntity: return serviceNames().at(7);
break; default: break;
} }
return empty; return empty;
} }

View File

@@ -23,6 +23,7 @@ namespace BlackMisc
switch (flag) switch (flag)
{ {
case AircraftIcaoEntity: return QStringLiteral("Aircraft ICAO"); case AircraftIcaoEntity: return QStringLiteral("Aircraft ICAO");
case AircraftCategoryEntity: return QStringLiteral("Aircraft category");
case AirlineIcaoEntity: return QStringLiteral("Airline ICAO"); case AirlineIcaoEntity: return QStringLiteral("Airline ICAO");
case AirportEntity: return QStringLiteral("Airport"); case AirportEntity: return QStringLiteral("Airport");
case AllEntities: return QStringLiteral("All"); case AllEntities: return QStringLiteral("All");
@@ -53,6 +54,7 @@ namespace BlackMisc
{ {
QStringList list; QStringList list;
if (entities.testFlag(AircraftIcaoEntity)) list << QStringLiteral("Aircraft ICAO"); if (entities.testFlag(AircraftIcaoEntity)) list << QStringLiteral("Aircraft ICAO");
if (entities.testFlag(AircraftCategoryEntity)) list << QStringLiteral("Aircraft category");
if (entities.testFlag(AirlineIcaoEntity)) list << QStringLiteral("Airline ICAO"); if (entities.testFlag(AirlineIcaoEntity)) list << QStringLiteral("Airline ICAO");
if (entities.testFlag(AirportEntity)) list << QStringLiteral("Airport"); if (entities.testFlag(AirportEntity)) list << QStringLiteral("Airport");
if (entities.testFlag(BookingEntity)) list << QStringLiteral("VATSIM bookings"); if (entities.testFlag(BookingEntity)) list << QStringLiteral("VATSIM bookings");
@@ -155,6 +157,7 @@ namespace BlackMisc
if (entities.testFlag(CountryEntity)) { entities &= ~CountryEntity; return CountryEntity; } if (entities.testFlag(CountryEntity)) { entities &= ~CountryEntity; return CountryEntity; }
if (entities.testFlag(ModelEntity)) { entities &= ~ModelEntity; return ModelEntity; } if (entities.testFlag(ModelEntity)) { entities &= ~ModelEntity; return ModelEntity; }
if (entities.testFlag(DistributorEntity)) { entities &= ~DistributorEntity; return DistributorEntity; } if (entities.testFlag(DistributorEntity)) { entities &= ~DistributorEntity; return DistributorEntity; }
if (entities.testFlag(AircraftCategoryEntity)) { entities &= ~AircraftCategoryEntity; return AircraftCategoryEntity; }
return NoEntity; return NoEntity;
} }
@@ -180,13 +183,14 @@ namespace BlackMisc
CEntityFlags::Entity CEntityFlags::singleEntityByName(const QString &name) CEntityFlags::Entity CEntityFlags::singleEntityByName(const QString &name)
{ {
// order here is crucial // order here is crucial
if (name.contains("model", Qt::CaseInsensitive)) { return ModelEntity; } if (name.contains("model", Qt::CaseInsensitive)) { return ModelEntity; }
if (name.contains("category", Qt::CaseInsensitive)) { return AircraftCategoryEntity; }
if (name.contains("aircraft", Qt::CaseInsensitive)) { return AircraftIcaoEntity; } if (name.contains("aircraft", Qt::CaseInsensitive)) { return AircraftIcaoEntity; }
if (name.contains("airline", Qt::CaseInsensitive)) { return AirlineIcaoEntity; } if (name.contains("airline", Qt::CaseInsensitive)) { return AirlineIcaoEntity; }
if (name.contains("airport", Qt::CaseInsensitive)) { return AirportEntity; } if (name.contains("airport", Qt::CaseInsensitive)) { return AirportEntity; }
if (name.contains("distributor", Qt::CaseInsensitive)) { return DistributorEntity; } if (name.contains("distributor", Qt::CaseInsensitive)) { return DistributorEntity; }
if (name.contains("countr", Qt::CaseInsensitive)) { return CountryEntity; } // singular/plural if (name.contains("countr", Qt::CaseInsensitive)) { return CountryEntity; } // singular/plural
if (name.contains("liver", Qt::CaseInsensitive)) { return LiveryEntity; } // singular/plural if (name.contains("liver", Qt::CaseInsensitive)) { return LiveryEntity; } // singular/plural
return NoEntity; return NoEntity;
} }

View File

@@ -46,14 +46,15 @@ namespace BlackMisc
VatsimDataFile = 1 << 10, //!< the VATSIM data file (multiple data entities) VatsimDataFile = 1 << 10, //!< the VATSIM data file (multiple data entities)
VatsimStatusFile = 1 << 11, //!< the VATSIM status file (URLs for data files etc.) VatsimStatusFile = 1 << 11, //!< the VATSIM status file (URLs for data files etc.)
AirportEntity = 1 << 12, //!< airports AirportEntity = 1 << 12, //!< airports
AllEntities = ((1 << 13) - 1), //!< everything AircraftCategoryEntity = 1 << 13, //!< aircraft category entities
AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity, //!< all ICAO codes AllEntities = ((1 << 14) - 1), //!< everything
AllIcaoAndCountries = AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity, //!< all ICAO codes and countries AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity, //!< all ICAO codes
DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity, //!< Combinded AllIcaoAndCountries = AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity, //!< all ICAO codes and countries
ModelMatchingEntities = AllIcaoEntities | LiveryEntity | ModelEntity, //!< all needed for model matching DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity, //!< Combined
AllDbEntities = AllIcaoAndCountries | DistributorLiveryModel | DbInfoObjectEntity | AirportEntity, //!< All DB stuff ModelMatchingEntities = AllIcaoEntities | LiveryEntity | ModelEntity, //!< all needed for model matching
AllDbEntitiesNoInfoObjects = AllIcaoAndCountries | DistributorLiveryModel | AirportEntity, //!< All DB entities, no info objects AllDbEntitiesNoInfoObjects = AllIcaoAndCountries | DistributorLiveryModel | AirportEntity | AircraftCategoryEntity, //!< all DB entities, no info objects
AllDbEntitiesNoInfoObjectsNoAirports = AllIcaoAndCountries | DistributorLiveryModel //!< All DB entities, no info objects and airports AllDbEntities = AllDbEntitiesNoInfoObjects | DbInfoObjectEntity, //!< all DB stuff
AllDbEntitiesNoInfoObjectsNoAirportsAndCategories = AllIcaoAndCountries | DistributorLiveryModel //!< all DB entities, no info objects and airports
}; };
Q_DECLARE_FLAGS(Entity, EntityFlag) Q_DECLARE_FLAGS(Entity, EntityFlag)