Ref T472, added aircraft category in ICAO model

This commit is contained in:
Klaus Basan
2019-02-17 16:35:36 +01:00
committed by Mat Sutcliffe
parent 8af4603432
commit b584398482
3 changed files with 18 additions and 13 deletions

View File

@@ -7,10 +7,11 @@
* contained in the LICENSE file. * contained in the LICENSE file.
*/ */
#include "blackcore/application.h"
#include "blackcore/data/globalsetup.h" #include "blackcore/data/globalsetup.h"
#include "blackcore/db/icaodatareader.h" #include "blackcore/db/icaodatareader.h"
#include "blackcore/db/databaseutils.h" #include "blackcore/db/databaseutils.h"
#include "blackcore/application.h"
#include "blackmisc/aviation/aircraftcategorylist.h"
#include "blackmisc/fileutils.h" #include "blackmisc/fileutils.h"
#include "blackmisc/json.h" #include "blackmisc/json.h"
#include "blackmisc/logmessage.h" #include "blackmisc/logmessage.h"
@@ -56,22 +57,22 @@ namespace BlackCore
CAircraftIcaoCode CIcaoDataReader::getAircraftIcaoCodeForDesignator(const QString &designator) const CAircraftIcaoCode CIcaoDataReader::getAircraftIcaoCodeForDesignator(const QString &designator) const
{ {
return getAircraftIcaoCodes().findFirstByDesignatorAndRank(designator); return this->getAircraftIcaoCodes().findFirstByDesignatorAndRank(designator);
} }
CAircraftIcaoCodeList CIcaoDataReader::getAircraftIcaoCodesForDesignator(const QString &designator) const CAircraftIcaoCodeList CIcaoDataReader::getAircraftIcaoCodesForDesignator(const QString &designator) const
{ {
return getAircraftIcaoCodes().findByDesignator(designator); return this->getAircraftIcaoCodes().findByDesignator(designator);
} }
CAircraftIcaoCodeList CIcaoDataReader::getAircraftIcaoCodesForIataCode(const QString &iataCode) const CAircraftIcaoCodeList CIcaoDataReader::getAircraftIcaoCodesForIataCode(const QString &iataCode) const
{ {
return getAircraftIcaoCodes().findByIataCode(iataCode); return this->getAircraftIcaoCodes().findByIataCode(iataCode);
} }
CAircraftIcaoCode CIcaoDataReader::getAircraftIcaoCodeForDbKey(int key) const CAircraftIcaoCode CIcaoDataReader::getAircraftIcaoCodeForDbKey(int key) const
{ {
return getAircraftIcaoCodes().findByKey(key); return this->getAircraftIcaoCodes().findByKey(key);
} }
bool CIcaoDataReader::containsAircraftIcaoDesignator(const QString &designator) const bool CIcaoDataReader::containsAircraftIcaoDesignator(const QString &designator) const
@@ -163,7 +164,7 @@ namespace BlackCore
bool CIcaoDataReader::areAllDataRead() const bool CIcaoDataReader::areAllDataRead() const
{ {
return getCountriesCount() > 0 && getAirlineIcaoCodesCount() > 0 && getAircraftIcaoCodesCount() > 0; return this->getCountriesCount() > 0 && getAirlineIcaoCodesCount() > 0 && getAircraftIcaoCodesCount() > 0;
} }
int CIcaoDataReader::getCountriesCount() const int CIcaoDataReader::getCountriesCount() const
@@ -303,10 +304,11 @@ namespace BlackCore
emit this->dataRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadParsing, 0); emit this->dataRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadParsing, 0);
CAircraftIcaoCodeList codes; CAircraftIcaoCodeList codes;
CAircraftIcaoCodeList inconsistent; CAircraftIcaoCodeList inconsistent;
const CAircraftCategoryList categories = this->getAircraftCategories();
if (res.isRestricted()) if (res.isRestricted())
{ {
// create full list if it was just incremental // create full list if it was just incremental
const CAircraftIcaoCodeList incrementalCodes(CAircraftIcaoCodeList::fromDatabaseJson(res, true, &inconsistent)); const CAircraftIcaoCodeList incrementalCodes(CAircraftIcaoCodeList::fromDatabaseJson(res, categories, true, &inconsistent));
if (incrementalCodes.isEmpty()) { return; } // currently ignored if (incrementalCodes.isEmpty()) { return; } // currently ignored
codes = this->getAircraftIcaoCodes(); codes = this->getAircraftIcaoCodes();
codes.replaceOrAddObjectsByKey(incrementalCodes); codes.replaceOrAddObjectsByKey(incrementalCodes);
@@ -316,7 +318,7 @@ namespace BlackCore
// normally read from special DB view which already filters incomplete // normally read from special DB view which already filters incomplete
QTime time; QTime time;
time.start(); time.start();
codes = CAircraftIcaoCodeList::fromDatabaseJson(res, true, &inconsistent); codes = CAircraftIcaoCodeList::fromDatabaseJson(res, categories, true, &inconsistent);
this->logParseMessage("aircraft ICAO", codes.size(), time.elapsed(), res); this->logParseMessage("aircraft ICAO", codes.size(), time.elapsed(), res);
} }

View File

@@ -32,9 +32,11 @@ namespace BlackGui
m_columns.addColumn(CColumn::standardValueObject("rank", CAircraftIcaoCode::IndexRank, CDefaultFormatter::alignRightVCenter())); m_columns.addColumn(CColumn::standardValueObject("rank", CAircraftIcaoCode::IndexRank, CDefaultFormatter::alignRightVCenter()));
m_columns.addColumn(CColumn::standardString("manufacturer", CAircraftIcaoCode::IndexManufacturer)); m_columns.addColumn(CColumn::standardString("manufacturer", CAircraftIcaoCode::IndexManufacturer));
m_columns.addColumn(CColumn::standardString("family", CAircraftIcaoCode::IndexFamily)); m_columns.addColumn(CColumn::standardString("family", CAircraftIcaoCode::IndexFamily));
m_columns.addColumn(CColumn::standardString("ICAO desc.", "ICAO description", CAircraftIcaoCode::IndexModelDescription)); m_columns.addColumn(CColumn::standardString("category", { CAircraftIcaoCode::IndexCategory, CAircraftCategory::IndexPath }));
m_columns.addColumn(CColumn::standardString("IATA desc.", "IATA description", CAircraftIcaoCode::IndexModelIataDescription)); // m_columns.addColumn(CColumn::standardString("ICAO desc.", "ICAO description", CAircraftIcaoCode::IndexModelDescription));
m_columns.addColumn(CColumn::standardString("swift desc.", "swift description", CAircraftIcaoCode::IndexModelSwiftDescription)); // m_columns.addColumn(CColumn::standardString("IATA desc.", "IATA description", CAircraftIcaoCode::IndexModelIataDescription));
// m_columns.addColumn(CColumn::standardString("swift desc.", "swift description", CAircraftIcaoCode::IndexModelSwiftDescription));
m_columns.addColumn(CColumn::standardString("description", "ICAO description", CAircraftIcaoCode::IndexCombinedDescription));
m_columns.addColumn(CColumn::standardString("type", "combined type", CAircraftIcaoCode::IndexCombinedAircraftType)); m_columns.addColumn(CColumn::standardString("type", "combined type", CAircraftIcaoCode::IndexCombinedAircraftType));
m_columns.addColumn(CColumn::standardString("WTC", "wake turbulence category", CAircraftIcaoCode::IndexWtc)); m_columns.addColumn(CColumn::standardString("WTC", "wake turbulence category", CAircraftIcaoCode::IndexWtc));
m_columns.addColumn(CColumn("mil.", "military", CAircraftIcaoCode::IndexIsMilitary, new CBoolIconFormatter("military", "civil"))); m_columns.addColumn(CColumn("mil.", "military", CAircraftIcaoCode::IndexIsMilitary, new CBoolIconFormatter("military", "civil")));

View File

@@ -34,6 +34,7 @@ namespace BlackGui
//! Destructor //! Destructor
virtual ~CAircraftIcaoCodeListModel() {} virtual ~CAircraftIcaoCodeListModel() {}
}; };
} } // ns
} } // ns
#endif // guard #endif // guard