11 using namespace swift::misc::simulation;
15 CAircraftModelFilter::CAircraftModelFilter(
int id,
const QString &modelKey,
const QString &description,
16 CAircraftModel::ModelModeFilter modelMode,
17 swift::misc::db::DbKeyStateFilter dbKeyFilter,
Qt::CheckState military,
23 : m_id(id), m_modelKey(modelKey.trimmed().toUpper()), m_description(description.trimmed()),
24 m_modelMode(modelMode), m_dbKeyFilter(dbKeyFilter), m_military(military), m_colorLiveries(colorLiveries),
25 m_aircraftIcao(aircraftIcao.trimmed().toUpper()),
26 m_aircraftManufacturer(aircraftManufacturer.trimmed().toUpper()),
27 m_airlineIcao(airlineIcao.trimmed().toUpper()), m_airlineName(airlineName.trimmed().toUpper()),
28 m_liveryCode(liveryCode.trimmed().toUpper()), m_fileName(fileName), m_combinedType(combinedType),
29 m_simulatorInfo(simInfo), m_distributor(distributor)
36 if (!this->
isEnabled()) {
return inContainer; }
43 if (model.isLoadedFromDb() && model.getDbKey() == m_id)
53 if (!m_simulatorInfo.
matchesAny(model.getSimulator())) {
continue; }
66 if (!model.isMilitary()) {
continue; }
71 if (model.isMilitary()) {
continue; }
80 if (!model.getLivery().isColorLivery()) {
continue; }
85 if (model.getLivery().isColorLivery()) {
continue; }
94 if (m_modelMode != CAircraftModel::All && m_modelMode != CAircraftModel::Undefined)
96 if (!model.matchesMode(m_modelMode)) {
continue; }
99 if (m_dbKeyFilter != swift::misc::db::All && m_dbKeyFilter != swift::misc::db::Undefined)
101 if (!model.matchesDbKeyState(m_dbKeyFilter)) {
continue; }
117 if (!m_aircraftManufacturer.
isEmpty())
120 m_aircraftManufacturer))
152 if (!model.getDistributor().matchesKeyOrAlias(m_distributor)) {
continue; }
157 if (!model.getAircraftIcaoCode().matchesCombinedType(m_combinedType)) {
continue; }
165 bool CAircraftModelFilter::valid()
const
167 const bool allEmpty = m_id < 0 && m_modelKey.
isEmpty() && m_description.
isEmpty() &&
171 if (!allEmpty) {
return true; }
173 const bool noModelMode = (m_modelMode == CAircraftModel::Undefined || m_modelMode == CAircraftModel::All);
174 const bool noDbState = (m_dbKeyFilter == swift::misc::db::Undefined || m_dbKeyFilter == swift::misc::db::All);
178 return !(noSim && noModelMode && noDbState && noKey && noMilitary && noColorRestriction);
swift::misc::simulation::CAircraftModelList filter(const swift::misc::simulation::CAircraftModelList &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*".
void push_back(const T &value)
Appends an element at the end of the sequence.
bool hasValidDbKey() const
Has valid DB key.
Aircraft model (used by another pilot, my models on disk)
Value object encapsulating a list of aircraft models.
Value object encapsulating information of software distributor.
Simple hardcoded info about the corresponding simulator.
bool isAllSimulators() const
Is all simulators?
bool isNoSimulator() const
No simulator?
bool matchesAny(const CSimulatorInfo &otherInfo) const
Matches any simulator.
Models to be used with views, mainly QTableView.
bool isEmpty() const const