mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-23 07:15:35 +08:00
refs #590, military flag in airline ICAO
(plus fixes in prefix of aircraft ICAO)
This commit is contained in:
@@ -29,7 +29,8 @@ namespace BlackGui
|
||||
col.setSortPropertyIndex(CAirlineIcaoCode::IndexAirlineDesignator);
|
||||
this->m_columns.addColumn(col);
|
||||
|
||||
this->m_columns.addColumn(CColumn("VA", "Virtual airline", CAirlineIcaoCode::IndexIsVirtualAirline, new CBoolIconFormatter("VA", "real airline")));
|
||||
this->m_columns.addColumn(CColumn("VA", "virtual airline", CAirlineIcaoCode::IndexIsVirtualAirline, new CBoolIconFormatter("VA", "real airline")));
|
||||
this->m_columns.addColumn(CColumn("mil.", "military (air force)", CAirlineIcaoCode::IndexIsMilitary, new CBoolIconFormatter("military", "civilian")));
|
||||
this->m_columns.addColumn(CColumn("op.", "operating", CAirlineIcaoCode::IndexIsOperating, new CBoolIconFormatter("operating", "ceased")));
|
||||
this->m_columns.addColumn(CColumn::standardValueObject("name", CAirlineIcaoCode::IndexAirlineName));
|
||||
|
||||
|
||||
@@ -451,7 +451,7 @@ namespace BlackMisc
|
||||
|
||||
const QStringList &CAircraftIcaoCode::getSpecialDesignators()
|
||||
{
|
||||
static const QStringList s({ "ZZZZ", "SHIP", "BALL", "GLID", "ULAC", "GYRO", "UHEL", "GLID", "ULAC", "GYRO", "UHEL"});
|
||||
static const QStringList s({ "ZZZZ", "SHIP", "BALL", "GLID", "ULAC", "GYRO", "UHEL" });
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -483,18 +483,18 @@ namespace BlackMisc
|
||||
QString engine(json.value(prefix + "engine").toString());
|
||||
int engineCount(json.value(prefix + "enginecount").toInt(-1));
|
||||
QString combined(createdCombinedString(type, engineCount, engine));
|
||||
QString wtc(json.value("wtc").toString());
|
||||
QString wtc(json.value(prefix + "wtc").toString());
|
||||
if (wtc.length() > 1 && wtc.contains("/"))
|
||||
{
|
||||
// "L/M" -> "M"
|
||||
wtc = wtc.right(1);
|
||||
}
|
||||
Q_ASSERT_X(wtc.length() < 2, Q_FUNC_INFO, "WTC too long");
|
||||
|
||||
bool real = CDatastoreUtility::dbBoolStringToBool(json.value(prefix + "realworld").toString());
|
||||
bool legacy = CDatastoreUtility::dbBoolStringToBool(json.value(prefix + "legacy").toString());
|
||||
bool military = CDatastoreUtility::dbBoolStringToBool(json.value(prefix + "military").toString());
|
||||
int rank(json.value("rank").toInt(10));
|
||||
|
||||
Q_ASSERT_X(wtc.length() < 2, Q_FUNC_INFO, "WTC too long");
|
||||
int rank(json.value(prefix + "rank").toInt(10));
|
||||
|
||||
CAircraftIcaoCode code(
|
||||
designator, iata, combined,
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "blackmisc/blackmiscfreefunctions.h"
|
||||
#include "blackmisc/variant.h"
|
||||
#include "blackmisc/comparefunctions.h"
|
||||
#include "blackmisc/datastoreutility.h"
|
||||
|
||||
#include <tuple>
|
||||
#include <QThreadStorage>
|
||||
@@ -153,6 +154,8 @@ namespace BlackMisc
|
||||
return CVariant::fromValue(this->m_isVa);
|
||||
case IndexIsOperating:
|
||||
return CVariant::fromValue(this->m_isOperating);
|
||||
case IndexIsMilitary:
|
||||
return CVariant::fromValue(this->m_isMilitary);
|
||||
case IndexDesignatorNameCountry:
|
||||
return CVariant::fromValue(this->getDesignatorNameCountry());
|
||||
default:
|
||||
@@ -188,6 +191,9 @@ namespace BlackMisc
|
||||
case IndexIsOperating:
|
||||
this->setOperating(variant.toBool());
|
||||
break;
|
||||
case IndexIsMilitary:
|
||||
this->setMilitary(variant.toBool());
|
||||
break;
|
||||
default:
|
||||
CValueObject::setPropertyByIndex(variant, index);
|
||||
break;
|
||||
@@ -217,6 +223,8 @@ namespace BlackMisc
|
||||
return Compare::compare(this->isVirtualAirline(), compareValue.isVirtualAirline());
|
||||
case IndexIsOperating:
|
||||
return Compare::compare(this->isOperating(), compareValue.isOperating());
|
||||
case IndexIsMilitary:
|
||||
return Compare::compare(this->isMilitary(), compareValue.isMilitary());
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -301,14 +309,17 @@ namespace BlackMisc
|
||||
QString name(json.value(prefix + "name").toString());
|
||||
QString countryIso(json.value(prefix + "country").toString());
|
||||
QString countryName(json.value(prefix + "countryname").toString());
|
||||
bool va = json.value(prefix + "va").toString().startsWith("Y", Qt::CaseInsensitive); // VA
|
||||
bool operating = json.value(prefix + "operating").toString().startsWith("Y", Qt::CaseInsensitive); // operating
|
||||
bool va = CDatastoreUtility::dbBoolStringToBool(json.value(prefix + "va").toString());
|
||||
bool operating = CDatastoreUtility::dbBoolStringToBool(json.value(prefix + "operating").toString());
|
||||
bool military = CDatastoreUtility::dbBoolStringToBool(json.value(prefix + "military").toString());
|
||||
|
||||
CAirlineIcaoCode code(
|
||||
designator, name,
|
||||
CCountry(countryIso, countryName),
|
||||
telephony, va, operating
|
||||
);
|
||||
code.setIataCode(iata);
|
||||
code.setMilitary(military);
|
||||
code.setKeyAndTimestampFromDatabaseJson(json, prefix);
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ namespace BlackMisc
|
||||
IndexTelephonyDesignator,
|
||||
IndexIsVirtualAirline,
|
||||
IndexIsOperating,
|
||||
IndexIsMilitary,
|
||||
IndexDesignatorNameCountry,
|
||||
};
|
||||
|
||||
@@ -107,6 +108,12 @@ namespace BlackMisc
|
||||
//! Operating airline?
|
||||
void setOperating(bool operating) { m_isOperating = operating; }
|
||||
|
||||
//! Military, air force or such?
|
||||
bool isMilitary() const { return m_isMilitary; }
|
||||
|
||||
//! Military, air force or such?
|
||||
void setMilitary(bool military) { m_isMilitary = military; }
|
||||
|
||||
//! Country?
|
||||
bool hasValidCountry() const;
|
||||
|
||||
@@ -179,6 +186,7 @@ namespace BlackMisc
|
||||
QString m_telephonyDesignator; //!< "Speedbird"
|
||||
bool m_isVa = false; //!< virtual airline
|
||||
bool m_isOperating = true; //!< still operating?
|
||||
bool m_isMilitary = false; //!< air force or such
|
||||
};
|
||||
} // namespace
|
||||
} // namespace
|
||||
@@ -192,7 +200,8 @@ BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::Aviation::CAirlineIcaoCode, (
|
||||
o.m_country,
|
||||
o.m_telephonyDesignator,
|
||||
o.m_isVa,
|
||||
o.m_isOperating
|
||||
o.m_isOperating,
|
||||
o.m_isMilitary
|
||||
))
|
||||
|
||||
#endif // guard
|
||||
|
||||
@@ -72,6 +72,14 @@ namespace BlackMisc
|
||||
});
|
||||
}
|
||||
|
||||
CAirlineIcaoCodeList CAirlineIcaoCodeList::findByMilitary(bool military) const
|
||||
{
|
||||
return this->findBy([&](const CAirlineIcaoCode & code)
|
||||
{
|
||||
return code.isMilitary() == military;
|
||||
});
|
||||
}
|
||||
|
||||
CAirlineIcaoCode CAirlineIcaoCodeList::smartAirlineIcaoSelector(const CAirlineIcaoCode &icaoPattern) const
|
||||
{
|
||||
if (icaoPattern.hasValidDbKey())
|
||||
|
||||
@@ -59,6 +59,9 @@ namespace BlackMisc
|
||||
//! Find by country code
|
||||
CAirlineIcaoCodeList findByCountryIsoCode(const QString &isoCode) const;
|
||||
|
||||
//! Find by military flag
|
||||
CAirlineIcaoCodeList findByMilitary(bool military) const;
|
||||
|
||||
//! Best selection by given pattern
|
||||
CAirlineIcaoCode smartAirlineIcaoSelector(const CAirlineIcaoCode &icaoPattern) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user