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