From 90c3c3560979a74fe4d0d70d233c0d0769c479ae Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 18 Jul 2016 01:46:28 +0200 Subject: [PATCH] refs #709, as result of testing created special database views for ICAO codes * view already filter incomplete data * as result, info object count values are aligned with data eventually parsed (which will allow to detect changes by comparing counts) * smaller adjustments to allow airlines with designator --- src/blackcore/db/icaodatareader.cpp | 8 +++++--- src/blackmisc/aviation/aircrafticaocode.cpp | 1 + src/blackmisc/aviation/aircrafticaocodelist.cpp | 5 ++++- src/blackmisc/aviation/airlineicaocode.cpp | 1 + src/blackmisc/aviation/airlineicaocodelist.cpp | 7 +++++-- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/blackcore/db/icaodatareader.cpp b/src/blackcore/db/icaodatareader.cpp index 8f804a1f0..bc6638af5 100644 --- a/src/blackcore/db/icaodatareader.cpp +++ b/src/blackcore/db/icaodatareader.cpp @@ -223,7 +223,7 @@ namespace BlackCore QScopedPointer nwReply(nwReplyPtr); if (this->isAbandoned()) { return; } - QString urlString(nwReply->url().toString()); + const QString urlString(nwReply->url().toString()); CDatabaseReader::JsonDatastoreResponse res = this->setStatusAndTransformReplyIntoDatastoreResponse(nwReply.data()); if (res.hasErrorMessage()) { @@ -231,7 +231,9 @@ namespace BlackCore emit dataRead(CEntityFlags::AircraftIcaoEntity, CEntityFlags::ReadFailed, 0); return; } - const CAircraftIcaoCodeList codes = CAircraftIcaoCodeList::fromDatabaseJson(res); + + // normally read from special view which already filter incomplete + const CAircraftIcaoCodeList codes = CAircraftIcaoCodeList::fromDatabaseJson(res, false); const int n = codes.size(); qint64 latestTimestamp = codes.latestTimestampMsecsSinceEpoch(); if (n > 0 && latestTimestamp < 0) @@ -259,7 +261,7 @@ namespace BlackCore emit dataRead(CEntityFlags::AirlineIcaoEntity, CEntityFlags::ReadFailed, 0); return; } - const CAirlineIcaoCodeList codes = CAirlineIcaoCodeList::fromDatabaseJson(res); + const CAirlineIcaoCodeList codes = CAirlineIcaoCodeList::fromDatabaseJson(res, false); const int n = codes.size(); qint64 latestTimestamp = codes.latestTimestampMsecsSinceEpoch(); if (n > 0 && latestTimestamp < 0) diff --git a/src/blackmisc/aviation/aircrafticaocode.cpp b/src/blackmisc/aviation/aircrafticaocode.cpp index 9c35c3016..de7b475b8 100644 --- a/src/blackmisc/aviation/aircrafticaocode.cpp +++ b/src/blackmisc/aviation/aircrafticaocode.cpp @@ -261,6 +261,7 @@ namespace BlackMisc QString CAircraftIcaoCode::getCombinedIcaoStringWithKey() const { QString s(getDesignator()); + if (s.isEmpty()) s = "????"; if (hasManufacturer()) { s = s.append(" ").append(getManufacturer()); } if (hasModelDescription()) { s = s.append(" ").append(getModelDescription()); } return s.append(" ").append(getDbKeyAsStringInParentheses()); diff --git a/src/blackmisc/aviation/aircrafticaocodelist.cpp b/src/blackmisc/aviation/aircrafticaocodelist.cpp index 85fe3be1e..b07e6d712 100644 --- a/src/blackmisc/aviation/aircrafticaocodelist.cpp +++ b/src/blackmisc/aviation/aircrafticaocodelist.cpp @@ -199,7 +199,10 @@ namespace BlackMisc for (const QJsonValue &value : array) { CAircraftIcaoCode icao(CAircraftIcaoCode::fromDatabaseJson(value.toObject())); - if (ignoreIncomplete && !icao.hasSpecialDesignator() && !icao.hasCompleteData()) { continue; } + if (ignoreIncomplete && !icao.hasSpecialDesignator() && !icao.hasCompleteData()) + { + continue; + } codes.push_back(icao); } return codes; diff --git a/src/blackmisc/aviation/airlineicaocode.cpp b/src/blackmisc/aviation/airlineicaocode.cpp index 34c9f56a0..5b5bb3093 100644 --- a/src/blackmisc/aviation/airlineicaocode.cpp +++ b/src/blackmisc/aviation/airlineicaocode.cpp @@ -288,6 +288,7 @@ namespace BlackMisc QString CAirlineIcaoCode::getCombinedStringWithKey() const { QString s(getVDesignator()); + if (s.isEmpty()) s = "????"; if (hasName()) { s = s.append(" ").append(getName()); } return s.append(" ").append(getDbKeyAsStringInParentheses()); } diff --git a/src/blackmisc/aviation/airlineicaocodelist.cpp b/src/blackmisc/aviation/airlineicaocodelist.cpp index ef6cf8cf4..c0a6f8c37 100644 --- a/src/blackmisc/aviation/airlineicaocodelist.cpp +++ b/src/blackmisc/aviation/airlineicaocodelist.cpp @@ -137,7 +137,10 @@ namespace BlackMisc for (const QJsonValue &value : array) { const CAirlineIcaoCode icao(CAirlineIcaoCode::fromDatabaseJson(value.toObject())); - if (ignoreIncomplete && !icao.hasCompleteData()) { continue; } + if (ignoreIncomplete && !icao.hasCompleteData()) + { + continue; + } codes.push_back(icao); } return codes; @@ -158,7 +161,7 @@ namespace BlackMisc else { const QString d(icao.getDesignator()); - if (c.contains(d)) { continue; } + if (c.contains(d) || d.isEmpty()) { continue; } c.append(d); } }