diff --git a/src/blackcore/webreaderflags.cpp b/src/blackcore/webreaderflags.cpp index 6710871b7..a31ed8a69 100644 --- a/src/blackcore/webreaderflags.cpp +++ b/src/blackcore/webreaderflags.cpp @@ -16,7 +16,8 @@ namespace BlackCore CWebReaderFlags::WebReader CWebReaderFlags::entitiesToReaders(CEntityFlags::Entity entities) { 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; } @@ -32,10 +33,10 @@ namespace BlackCore } if (entities.testFlag(CEntityFlags::DbInfoObjectEntity)) { f |= DbInfoDataReader; } - if (entities.testFlag(CEntityFlags::BookingEntity)) { f |= VatsimBookingReader; } - if (entities.testFlag(CEntityFlags::VatsimDataFile)) { f |= VatsimDataReader; } - if (entities.testFlag(CEntityFlags::VatsimStatusFile)) { f |= VatsimStatusReader; } - if (entities.testFlag(CEntityFlags::MetarEntity)) { f |= VatsimMetarReader; } + if (entities.testFlag(CEntityFlags::BookingEntity)) { f |= VatsimBookingReader; } + if (entities.testFlag(CEntityFlags::VatsimDataFile)) { f |= VatsimDataReader; } + if (entities.testFlag(CEntityFlags::VatsimStatusFile)) { f |= VatsimStatusReader; } + if (entities.testFlag(CEntityFlags::MetarEntity)) { f |= VatsimMetarReader; } return f; } @@ -48,14 +49,14 @@ namespace BlackCore CEntityFlags::Entity CWebReaderFlags::allEntitiesForReaders(WebReader readers) { CEntityFlags::Entity entities = CEntityFlags::NoEntity; - if (readers.testFlag(IcaoDataReader)) { entities |= CEntityFlags::AllIcaoAndCountries; } - if (readers.testFlag(ModelReader)) { entities |= CEntityFlags::DistributorLiveryModel; } - if (readers.testFlag(AirportReader)) { entities |= CEntityFlags::AirportEntity; } - if (readers.testFlag(DbInfoDataReader)) { entities |= CEntityFlags::DbInfoObjectEntity; } + if (readers.testFlag(IcaoDataReader)) { entities |= CEntityFlags::AllIcaoAndCountries; } + if (readers.testFlag(ModelReader)) { entities |= CEntityFlags::DistributorLiveryModel; } + if (readers.testFlag(AirportReader)) { entities |= CEntityFlags::AirportEntity; } + if (readers.testFlag(DbInfoDataReader)) { entities |= CEntityFlags::DbInfoObjectEntity; } if (readers.testFlag(VatsimBookingReader)) { entities |= CEntityFlags::BookingEntity; } - if (readers.testFlag(VatsimMetarReader)) { entities |= CEntityFlags::MetarEntity; } - if (readers.testFlag(VatsimDataReader)) { entities |= CEntityFlags::VatsimDataFile; } - if (readers.testFlag(VatsimStatusReader)) { entities |= CEntityFlags::VatsimStatusFile; } + if (readers.testFlag(VatsimMetarReader)) { entities |= CEntityFlags::MetarEntity; } + if (readers.testFlag(VatsimDataReader)) { entities |= CEntityFlags::VatsimDataFile; } + if (readers.testFlag(VatsimStatusReader)) { entities |= CEntityFlags::VatsimStatusFile; } return entities; } @@ -76,9 +77,9 @@ namespace BlackCore int CWebReaderFlags::numberOfReaders(WebReader readers) { int n = 0; - if (readers.testFlag(ModelReader)) { n++; } - if (readers.testFlag(IcaoDataReader)) { n++; } - if (readers.testFlag(AirportReader)) { n++; } + if (readers.testFlag(ModelReader)) { n++; } + if (readers.testFlag(IcaoDataReader)) { n++; } + if (readers.testFlag(AirportReader)) { n++; } if (readers.testFlag(DbInfoDataReader)) { n++; } return n; } diff --git a/src/blackgui/components/datainfoareacomponent.cpp b/src/blackgui/components/datainfoareacomponent.cpp index 24d08be81..c6dd20be6 100644 --- a/src/blackgui/components/datainfoareacomponent.cpp +++ b/src/blackgui/components/datainfoareacomponent.cpp @@ -159,7 +159,7 @@ namespace BlackGui void CDataInfoAreaComponent::requestUpdateOfAllDbData() { - sGui->getWebDataServices()->triggerLoadingDirectlyFromDb(CEntityFlags::AllDbEntitiesNoInfoObjectsNoAirports, QDateTime()); + sGui->getWebDataServices()->triggerLoadingDirectlyFromDb(CEntityFlags::AllDbEntitiesNoInfoObjectsNoAirportsAndCategories, QDateTime()); } void CDataInfoAreaComponent::requestUpdatedData(CEntityFlags::Entity entity) diff --git a/src/blackmisc/db/dbinfo.cpp b/src/blackmisc/db/dbinfo.cpp index ae916565e..d8906ea39 100644 --- a/src/blackmisc/db/dbinfo.cpp +++ b/src/blackmisc/db/dbinfo.cpp @@ -142,7 +142,7 @@ namespace BlackMisc 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; } @@ -154,7 +154,7 @@ namespace BlackMisc 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; } @@ -163,15 +163,15 @@ namespace BlackMisc static const QString empty; switch (entity) { - case CEntityFlags::AircraftIcaoEntity: return sharedFileNames().at(0); - case CEntityFlags::AirlineIcaoEntity: return sharedFileNames().at(1); - case CEntityFlags::AirportEntity: return sharedFileNames().at(2); - case CEntityFlags::CountryEntity: return sharedFileNames().at(3); - case CEntityFlags::DistributorEntity: return sharedFileNames().at(4); - case CEntityFlags::LiveryEntity: return sharedFileNames().at(5); - case CEntityFlags::ModelEntity: return sharedFileNames().at(6); - default: - break; + case CEntityFlags::AircraftIcaoEntity: return sharedFileNames().at(0); + case CEntityFlags::AirlineIcaoEntity: return sharedFileNames().at(1); + case CEntityFlags::AirportEntity: return sharedFileNames().at(2); + case CEntityFlags::CountryEntity: return sharedFileNames().at(3); + case CEntityFlags::DistributorEntity: return sharedFileNames().at(4); + case CEntityFlags::LiveryEntity: return sharedFileNames().at(5); + case CEntityFlags::ModelEntity: return sharedFileNames().at(6); + case CEntityFlags::AircraftCategoryEntity: return sharedFileNames().at(7); + default: break; } return empty; } @@ -182,14 +182,14 @@ namespace BlackMisc switch (entity) { case CEntityFlags::AircraftIcaoEntity: return serviceNames().at(0); - case CEntityFlags::AirlineIcaoEntity: return serviceNames().at(1); - case CEntityFlags::AirportEntity: return serviceNames().at(2); - case CEntityFlags::CountryEntity: return serviceNames().at(3); - case CEntityFlags::DistributorEntity: return serviceNames().at(4); - case CEntityFlags::LiveryEntity: return serviceNames().at(5); - case CEntityFlags::ModelEntity: return serviceNames().at(6); - default: - break; + case CEntityFlags::AirlineIcaoEntity: return serviceNames().at(1); + case CEntityFlags::AirportEntity: return serviceNames().at(2); + case CEntityFlags::CountryEntity: return serviceNames().at(3); + case CEntityFlags::DistributorEntity: return serviceNames().at(4); + case CEntityFlags::LiveryEntity: return serviceNames().at(5); + case CEntityFlags::ModelEntity: return serviceNames().at(6); + case CEntityFlags::AircraftCategoryEntity: return serviceNames().at(7); + default: break; } return empty; } diff --git a/src/blackmisc/network/entityflags.cpp b/src/blackmisc/network/entityflags.cpp index fa4e2248c..e6f8e90ca 100644 --- a/src/blackmisc/network/entityflags.cpp +++ b/src/blackmisc/network/entityflags.cpp @@ -23,6 +23,7 @@ namespace BlackMisc switch (flag) { case AircraftIcaoEntity: return QStringLiteral("Aircraft ICAO"); + case AircraftCategoryEntity: return QStringLiteral("Aircraft category"); case AirlineIcaoEntity: return QStringLiteral("Airline ICAO"); case AirportEntity: return QStringLiteral("Airport"); case AllEntities: return QStringLiteral("All"); @@ -53,6 +54,7 @@ namespace BlackMisc { QStringList list; 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(AirportEntity)) list << QStringLiteral("Airport"); 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(ModelEntity)) { entities &= ~ModelEntity; return ModelEntity; } if (entities.testFlag(DistributorEntity)) { entities &= ~DistributorEntity; return DistributorEntity; } + if (entities.testFlag(AircraftCategoryEntity)) { entities &= ~AircraftCategoryEntity; return AircraftCategoryEntity; } return NoEntity; } @@ -180,13 +183,14 @@ namespace BlackMisc CEntityFlags::Entity CEntityFlags::singleEntityByName(const QString &name) { // 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("airline", Qt::CaseInsensitive)) { return AirlineIcaoEntity; } - if (name.contains("airport", Qt::CaseInsensitive)) { return AirportEntity; } + if (name.contains("airline", Qt::CaseInsensitive)) { return AirlineIcaoEntity; } + if (name.contains("airport", Qt::CaseInsensitive)) { return AirportEntity; } if (name.contains("distributor", Qt::CaseInsensitive)) { return DistributorEntity; } - if (name.contains("countr", Qt::CaseInsensitive)) { return CountryEntity; } // singular/plural - if (name.contains("liver", Qt::CaseInsensitive)) { return LiveryEntity; } // singular/plural + if (name.contains("countr", Qt::CaseInsensitive)) { return CountryEntity; } // singular/plural + if (name.contains("liver", Qt::CaseInsensitive)) { return LiveryEntity; } // singular/plural return NoEntity; } diff --git a/src/blackmisc/network/entityflags.h b/src/blackmisc/network/entityflags.h index 718c33b7e..3865a522d 100644 --- a/src/blackmisc/network/entityflags.h +++ b/src/blackmisc/network/entityflags.h @@ -46,14 +46,15 @@ namespace BlackMisc VatsimDataFile = 1 << 10, //!< the VATSIM data file (multiple data entities) VatsimStatusFile = 1 << 11, //!< the VATSIM status file (URLs for data files etc.) AirportEntity = 1 << 12, //!< airports - AllEntities = ((1 << 13) - 1), //!< everything - AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity, //!< all ICAO codes - AllIcaoAndCountries = AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity, //!< all ICAO codes and countries - DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity, //!< Combinded - ModelMatchingEntities = AllIcaoEntities | LiveryEntity | ModelEntity, //!< all needed for model matching - AllDbEntities = AllIcaoAndCountries | DistributorLiveryModel | DbInfoObjectEntity | AirportEntity, //!< All DB stuff - AllDbEntitiesNoInfoObjects = AllIcaoAndCountries | DistributorLiveryModel | AirportEntity, //!< All DB entities, no info objects - AllDbEntitiesNoInfoObjectsNoAirports = AllIcaoAndCountries | DistributorLiveryModel //!< All DB entities, no info objects and airports + AircraftCategoryEntity = 1 << 13, //!< aircraft category entities + AllEntities = ((1 << 14) - 1), //!< everything + AllIcaoEntities = AircraftIcaoEntity | AirlineIcaoEntity, //!< all ICAO codes + AllIcaoAndCountries = AircraftIcaoEntity | AirlineIcaoEntity | CountryEntity, //!< all ICAO codes and countries + DistributorLiveryModel = DistributorEntity | LiveryEntity | ModelEntity, //!< Combined + ModelMatchingEntities = AllIcaoEntities | LiveryEntity | ModelEntity, //!< all needed for model matching + AllDbEntitiesNoInfoObjects = AllIcaoAndCountries | DistributorLiveryModel | AirportEntity | AircraftCategoryEntity, //!< all DB entities, no info objects + AllDbEntities = AllDbEntitiesNoInfoObjects | DbInfoObjectEntity, //!< all DB stuff + AllDbEntitiesNoInfoObjectsNoAirportsAndCategories = AllIcaoAndCountries | DistributorLiveryModel //!< all DB entities, no info objects and airports }; Q_DECLARE_FLAGS(Entity, EntityFlag)