refs #535 completer for airline name

* common base class for airline completers
* changed dependend classes
This commit is contained in:
Klaus Basan
2015-12-14 03:18:55 +01:00
parent 2c84c51a93
commit 92f930b068
13 changed files with 545 additions and 211 deletions

View File

@@ -210,6 +210,19 @@ namespace BlackMisc
return s.append(" ").append(getDbKeyAsStringInParentheses());
}
QString CAirlineIcaoCode::getNameWithKey() const
{
if (!hasValidDbKey()) { return getName(); }
if (hasName())
{
return QString(getName()).append(" ").append(getDbKeyAsStringInParentheses());
}
else
{
return getDbKeyAsStringInParentheses();
}
}
void CAirlineIcaoCode::updateMissingParts(const CAirlineIcaoCode &otherIcaoCode)
{
if (!this->hasValidDesignator()) { this->setDesignator(otherIcaoCode.getDesignator()); }

View File

@@ -76,6 +76,9 @@ namespace BlackMisc
//! Get name, e.g. "Lufthansa"
const QString &getName() const { return this->m_name; }
//! Name plus key, e.g. "Lufthansa (3421)"
QString getNameWithKey() const;
//! Set name
void setName(const QString &name) { this->m_name = name.trimmed(); }

View File

@@ -60,16 +60,30 @@ namespace BlackMisc
return codes;
}
QStringList CAirlineIcaoCodeList::toCompleterStrings() const
QStringList CAirlineIcaoCodeList::toIcaoDesignatorCompleterStrings() const
{
QStringList c;
for (const CAirlineIcaoCode &icao : *this)
{
QString cs(icao.getCombinedStringWithKey());
if (!icao.hasValidDbKey()) { continue; }
const QString cs(icao.getCombinedStringWithKey());
if (cs.isEmpty()) { continue; }
c.append(cs);
}
return c;
}
QStringList CAirlineIcaoCodeList::toNameCompleterStrings() const
{
QStringList c;
for (const CAirlineIcaoCode &icao : *this)
{
if (!icao.hasValidDbKey()) { continue; }
const QString cs(icao.getNameWithKey());
if (cs.isEmpty()) { continue; }
c.append(cs);
}
return c;
}
} // namespace
} // namespace

View File

@@ -49,8 +49,11 @@ namespace BlackMisc
//! Find by v-designator, this should be unique
CAirlineIcaoCode findByVDesignator(const QString &designator);
//! String list for completion
QStringList toCompleterStrings() const;
//! String list for completion by ICAO designator
QStringList toIcaoDesignatorCompleterStrings() const;
//! String list for completion by name
QStringList toNameCompleterStrings() const;
//! From our DB JSON
static CAirlineIcaoCodeList fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete = true);