refs #535, find standard livery

This commit is contained in:
Klaus Basan
2015-12-13 19:58:50 +01:00
parent 670bef0fd1
commit a7fc01ecff
8 changed files with 48 additions and 4 deletions

View File

@@ -11,6 +11,7 @@
#include "blackmisc/predicates.h"
using namespace BlackMisc::PhysicalQuantities;
using namespace BlackMisc::Aviation;
namespace BlackMisc
{
@@ -30,7 +31,7 @@ namespace BlackMisc
return this->findBy(&CLivery::getAirlineIcaoCodeDesignator, i);
}
CLivery CLiveryList::findByAirlineIcaoDesignatorStdLivery(const QString &icao) const
CLivery CLiveryList::findStdLiveryByAirlineIcaoDesignator(const QString &icao) const
{
QString i(icao.trimmed().toUpper());
if (i.isEmpty()) { return CLivery(); }
@@ -42,6 +43,11 @@ namespace BlackMisc
});
}
CLivery CLiveryList::findStdLiveryByAirlineIcaoDesignator(const CAirlineIcaoCode &icao) const
{
return this->findStdLiveryByAirlineIcaoDesignator(icao.getDesignator());
}
CLivery CLiveryList::findByCombinedCode(const QString &combinedCode) const
{
if (!CLivery::isValidCombinedCode(combinedCode)) { return CLivery(); }
@@ -72,7 +78,7 @@ namespace BlackMisc
if (liveryPattern.hasValidAirlineDesignator())
{
QString icao(liveryPattern.getAirlineIcaoCodeDesignator());
CLivery l(this->findByAirlineIcaoDesignatorStdLivery(icao));
CLivery l(this->findStdLiveryByAirlineIcaoDesignator(icao));
if (l.hasCompleteData()) { return l; }
}
return CLivery();

View File

@@ -40,7 +40,10 @@ namespace BlackMisc
CLiveryList findByAirlineIcaoDesignator(const QString &icao) const;
//! Find livery by airline
CLivery findByAirlineIcaoDesignatorStdLivery(const QString &icao) const;
CLivery findStdLiveryByAirlineIcaoDesignator(const QString &icao) const;
//! Find livery by airline
CLivery findStdLiveryByAirlineIcaoDesignator(const CAirlineIcaoCode &icao) const;
//! Find livery by combined code
CLivery findByCombinedCode(const QString &combinedCode) const;

View File

@@ -101,6 +101,13 @@ namespace BlackMisc
return this->m_webDataReaderProvider->getLiveryForCombinedCode(combinedCode);
}
CLivery CWebDataServicesAware::getStdLiveryForAirlineCode(const CAirlineIcaoCode &icao) const
{
Q_ASSERT_X(this->m_webDataReaderProvider, Q_FUNC_INFO, "Missing provider");
if (!hasProvider()) { return CLivery(); }
return this->m_webDataReaderProvider->getStdLiveryForAirlineCode(icao);
}
CLivery CWebDataServicesAware::smartLiverySelector(const CLivery &livery) const
{
Q_ASSERT_X(this->m_webDataReaderProvider, Q_FUNC_INFO, "Missing provider");

View File

@@ -88,10 +88,14 @@ namespace BlackMisc
//! \threadsafe
virtual int getLiveriesCount() const = 0;
//! Liveries
//! Livery for its combined code
//! \threadsafe
virtual BlackMisc::Aviation::CLivery getLiveryForCombinedCode(const QString &combinedCode) const = 0;
//! Standard livery for airline code
//! \threadsafe
virtual BlackMisc::Aviation::CLivery getStdLiveryForAirlineCode(const BlackMisc::Aviation::CAirlineIcaoCode &icao) const = 0;
//! Livery for id
//! \threadsafe
virtual BlackMisc::Aviation::CLivery getLiveryForDbKey(int id) const = 0;
@@ -252,6 +256,9 @@ namespace BlackMisc
//! \copydoc IWebDataServicesProvider::getLiveryForCombinedCode
BlackMisc::Aviation::CLivery getLiveryForCombinedCode(const QString &combinedCode) const;
//! \copydoc IWebDataServicesProvider::getStdLiveryForAirlineCode
BlackMisc::Aviation::CLivery getStdLiveryForAirlineCode(const BlackMisc::Aviation::CAirlineIcaoCode &icao) const;
//! \copydoc IWebDataServicesProvider::smartLiverySelector
BlackMisc::Aviation::CLivery smartLiverySelector(const Aviation::CLivery &livery) const;