refs #452, adjusted aircraft/aviation classes

* support for loading from datastore
* improved timestamp handling
* new color and country classes
* new attributes
* updates for missing parts in CUser
This commit is contained in:
Klaus Basan
2015-09-23 03:20:36 +02:00
committed by Mathew Sutcliffe
parent c5f7179588
commit ae24700299
45 changed files with 2762 additions and 401 deletions

View File

@@ -18,6 +18,58 @@ namespace BlackMisc
CSequence<CAircraftIcaoCode>(other)
{ }
CAircraftIcaoCodeList CAircraftIcaoCodeList::findByDesignator(const QString &designator)
{
if (!CAircraftIcaoCode::isValidDesignator(designator)) { return CAircraftIcaoCodeList(); }
return this->findBy([&](const CAircraftIcaoCode & code)
{
return code.matchesDesignator(designator);
});
}
CAircraftIcaoCodeList CAircraftIcaoCodeList::findByManufacturer(const QString &manufacturer)
{
if (manufacturer.isEmpty()) { return CAircraftIcaoCodeList(); }
return this->findBy([&](const CAircraftIcaoCode & code)
{
return code.getManufacturer().startsWith(manufacturer, Qt::CaseInsensitive);
});
}
CAircraftIcaoCodeList CAircraftIcaoCodeList::findByDescription(const QString &description)
{
if (description.isEmpty()) { return CAircraftIcaoCodeList(); }
return this->findBy([&](const CAircraftIcaoCode & code)
{
return code.getModelDescription().startsWith(description, Qt::CaseInsensitive);
});
}
CAircraftIcaoCode CAircraftIcaoCodeList::findFirstByDesignatorAndRank(const QString &designator)
{
if (!CAircraftIcaoCode::isValidDesignator(designator)) { return CAircraftIcaoCode(); }
CAircraftIcaoCodeList codes(findByDesignator(designator));
if (codes.isEmpty()) { return CAircraftIcaoCode(); }
if (codes.size() < 2) { return codes.front(); }
codes.sortBy(&CAircraftIcaoCode::getRank, &CAircraftIcaoCode::getDbKey);
return codes.front();
}
void CAircraftIcaoCodeList::sortByRank()
{
this->sortBy(&CAircraftIcaoCode::getRank);
}
QStringList CAircraftIcaoCodeList::toCompleterStrings() const
{
QStringList c;
for (const CAircraftIcaoCode &icao : *this)
{
c.append(icao.getCombinedStringWithKey());
}
return c;
}
CAircraftIcaoCodeList CAircraftIcaoCodeList::fromDatabaseJson(const QJsonArray &array, bool ignoreIncomplete)
{
CAircraftIcaoCodeList codes;