mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
refs #734, added NAVY/MARINES as 2 letter codes
* adjustement for 2 letter codes * icons
This commit is contained in:
committed by
Mathew Sutcliffe
parent
e8aa873ea0
commit
f91cf3bbf3
BIN
resources/share/images/airlines/vm.png
Normal file
BIN
resources/share/images/airlines/vm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 956 B |
BIN
resources/share/images/airlines/vv.png
Normal file
BIN
resources/share/images/airlines/vv.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1022 B |
@@ -147,7 +147,7 @@ namespace BlackMisc
|
||||
|
||||
CIcon CAirlineIcaoCode::toIcon() const
|
||||
{
|
||||
if (this->m_designator.length() > 2)
|
||||
if (hasValidDesignator())
|
||||
{
|
||||
// relative to images
|
||||
return CIcon("airlines/" + m_designator.toLower() + ".png", this->convertToQString());
|
||||
@@ -285,16 +285,23 @@ namespace BlackMisc
|
||||
|
||||
bool CAirlineIcaoCode::isValidAirlineDesignator(const QString &airline)
|
||||
{
|
||||
// allow 2 chars for IATA
|
||||
if (airline.length() < 2 || airline.length() > 5) return false;
|
||||
auto chars = makeRange(airline.begin(), airline.end());
|
||||
if (chars.containsBy([](QChar c) { return !c.isUpper() && !c.isDigit(); })) { return false; }
|
||||
return true;
|
||||
}
|
||||
|
||||
QSet<QString> CAirlineIcaoCode::specialValidDesignators()
|
||||
{
|
||||
static const QSet<QString> valid({ "VV", "VM"});
|
||||
return valid;
|
||||
}
|
||||
|
||||
QString CAirlineIcaoCode::normalizeDesignator(const QString candidate)
|
||||
{
|
||||
QString n(candidate.trimmed().toUpper());
|
||||
if (n.contains(' ')) { n = n.left(n.indexOf(' ')); } // cutoff as first space
|
||||
if (n.contains(' ')) { n = n.left(n.indexOf(' ')); } // cutoff at first space
|
||||
if (n.isEmpty()) { return n; }
|
||||
|
||||
static QThreadStorage<QRegularExpression> tsRegex;
|
||||
|
||||
@@ -194,6 +194,9 @@ namespace BlackMisc
|
||||
//! Valid designator?
|
||||
static bool isValidAirlineDesignator(const QString &airline);
|
||||
|
||||
//! Some special valid designator which do not fit standard rule (e.g. 3-letter code)
|
||||
static QSet<QString> specialValidDesignators();
|
||||
|
||||
//! Normalize string as airline designator
|
||||
static QString normalizeDesignator(const QString candidate);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user