9 using namespace swift::misc::aviation;
13 CLiveryFilter::CLiveryFilter(
int id,
const QString &combinedCode,
const QString &descriptiom,
17 : m_id(id), m_combinedCode(combinedCode.trimmed().toUpper()), m_description(descriptiom),
18 m_airlineIcaoDesignator(airlineDesignator.trimmed().toUpper()), m_fuselageColor(fuselageColor),
19 m_tailColor(tailColor), m_maxColorDistance(maxColorDistance), m_colorLiveries(colorLiveries),
20 m_airlineLiveries(airlineLiveries)
27 if (!this->
isEnabled()) {
return inContainer; }
29 bool checkLiveryType = filterByLiveryType();
30 for (
const CLivery &livery : inContainer)
35 if (livery.isLoadedFromDb() && livery.getDbKey() == m_id)
44 if (!m_colorLiveries && livery.isColorLivery()) {
continue; }
45 if (!m_airlineLiveries && livery.isAirlineLivery()) {
continue; }
47 if (!m_combinedCode.isEmpty())
51 if (!m_description.isEmpty())
55 if (!m_airlineIcaoDesignator.isEmpty())
58 m_airlineIcaoDesignator))
65 if (livery.getColorFuselage().colorDistance(m_fuselageColor) > m_maxColorDistance) {
continue; }
69 if (livery.getColorTail().colorDistance(m_tailColor) > m_maxColorDistance) {
continue; }
76 bool CLiveryFilter::valid()
const
78 if (filterByLiveryType()) {
return true; }
79 if (m_fuselageColor.
isValid() || m_tailColor.
isValid()) {
return true; }
80 return !(m_id < 0 && m_combinedCode.isEmpty() && m_description.isEmpty() && m_airlineIcaoDesignator.isEmpty());
83 bool CLiveryFilter::filterByLiveryType()
const
85 return (m_colorLiveries && !m_airlineLiveries) || (!m_colorLiveries && m_airlineLiveries);
virtual swift::misc::aviation::CLiveryList filter(const swift::misc::aviation::CLiveryList &inContainer) const
Used container data.
virtual bool isEnabled() const
Enabled?
bool m_valid
is filter valid?
bool stringMatchesFilterExpression(const QString &value, const QString &filter, Qt::CaseSensitivity cs=Qt::CaseInsensitive) const
Standard string search supporting wildcard at begin and end: "*xyz", "abc*".
bool isValid() const
Valid?
void push_back(const T &value)
Appends an element at the end of the sequence.
Value object encapsulating information about an airpot.
Value object for a list of airports.
Models to be used with views, mainly QTableView.