refs #575, livery completer

* utility functions in value object
* completer class
This commit is contained in:
Klaus Basan
2016-01-15 23:08:17 +01:00
parent b09dbd4828
commit 8d57566a24
7 changed files with 398 additions and 1 deletions

View File

@@ -53,6 +53,18 @@ namespace BlackMisc
m_military(isMilitary)
{ }
QString CLivery::getCombinedCodePlusInfo() const
{
QString s(getCombinedCode());
if (!this->getDescription().isEmpty())
{
s += " (";
s += this->getDescription();
s += ")";
}
return s;
}
bool CLivery::setAirlineIcaoCode(const CAirlineIcaoCode &airlineIcao)
{
if (m_airline == airlineIcao) { return false; }

View File

@@ -67,6 +67,9 @@ namespace BlackMisc
//! Combined code
const QString &getCombinedCode() const { return m_combinedCode; }
//! Combined code
QString getCombinedCodePlusInfo() const;
//! Get description.
const QString &getDescription() const { return m_description; }

View File

@@ -13,6 +13,7 @@
using namespace BlackMisc::PhysicalQuantities;
using namespace BlackMisc::Aviation;
namespace BlackMisc
{
namespace Aviation
@@ -57,6 +58,22 @@ namespace BlackMisc
});
}
QStringList CLiveryList::getCombinedCodes(bool sort) const
{
if (this->isEmpty()) { return QStringList(); }
QStringList codes = this->transform(Predicates::MemberTransform(&CLivery::getCombinedCode));
if (sort) { codes.sort(); }
return codes;
}
QStringList CLiveryList::getCombinedCodesPlusInfo(bool sort) const
{
if (this->isEmpty()) { return QStringList(); }
QStringList codes = this->transform(Predicates::MemberTransform(&CLivery::getCombinedCodePlusInfo));
if (sort) { codes.sort(); }
return codes;
}
CLivery CLiveryList::smartLiverySelector(const CLivery &liveryPattern) const
{
// first try on id, that would be perfect

View File

@@ -14,8 +14,8 @@
#include "blackmisc/blackmiscexport.h"
#include "blackmisc/datastoreobjectlist.h"
#include "blackmisc/aviation/livery.h"
#include <QStringList>
namespace BlackMisc
{
@@ -48,6 +48,12 @@ namespace BlackMisc
//! Find livery by combined code
CLivery findByCombinedCode(const QString &combinedCode) const;
//! All combined codes
QStringList getCombinedCodes(bool sort = false) const;
//! All combined codes plus more info
QStringList getCombinedCodesPlusInfo(bool sort = false) const;
//! Find
CLivery smartLiverySelector(const CLivery &liveryPattern) const;