refs #618, unified naming in model list + minor adjustments

This commit is contained in:
Klaus Basan
2016-03-23 03:19:36 +01:00
parent b78d823485
commit 50ac317065
4 changed files with 64 additions and 16 deletions

View File

@@ -63,7 +63,8 @@ namespace BlackGui
case OwnSimulatorModelMapping: case OwnSimulatorModelMapping:
this->m_columns.addColumn(CColumn::standardString("model", CAircraftModel::IndexModelString)); this->m_columns.addColumn(CColumn::standardString("model", CAircraftModel::IndexModelString));
this->m_columns.addColumn(CColumn("mode", "model mode(include, exclude)", CAircraftModel::IndexModelModeAsIcon, new CPixmapFormatter())); this->m_columns.addColumn(CColumn("mode", "model mode(include, exclude)", CAircraftModel::IndexModelModeAsIcon, new CPixmapFormatter()));
this->m_columns.addColumn(CColumn::standardValueObject("call", "callsign", CAircraftModel::IndexCallsign)); // this->m_columns.addColumn(CColumn::standardValueObject("call", "callsign", CAircraftModel::IndexCallsign));
this->m_columns.addColumn(CColumn::standardString("dist.", "distributor", { CAircraftModel::IndexDistributor, CDistributor::IndexDbStringKey}));
this->m_columns.addColumn(CColumn::standardString("ac", "aircraft ICAO", { CAircraftModel::IndexAircraftIcaoCode, CAircraftIcaoCode::IndexAircraftDesignator})); this->m_columns.addColumn(CColumn::standardString("ac", "aircraft ICAO", { CAircraftModel::IndexAircraftIcaoCode, CAircraftIcaoCode::IndexAircraftDesignator}));
this->m_columns.addColumn(CColumn::standardString("al", "airline ICAO", { CAircraftModel::IndexLivery, CLivery::IndexAirlineIcaoCode, CAirlineIcaoCode::IndexAirlineDesignator})); this->m_columns.addColumn(CColumn::standardString("al", "airline ICAO", { CAircraftModel::IndexLivery, CLivery::IndexAirlineIcaoCode, CAirlineIcaoCode::IndexAirlineDesignator}));
// this->m_columns.addColumn(CColumn::standardString("ct", "combined type", { CAircraftModel::IndexIcao, CAircraftIcaoData::IndexCombinedAircraftType})); // this->m_columns.addColumn(CColumn::standardString("ct", "combined type", { CAircraftModel::IndexIcao, CAircraftIcaoData::IndexCombinedAircraftType}));

View File

@@ -51,7 +51,8 @@ namespace BlackMisc
{ {
Undefined = 0, Undefined = 0,
Include = 1 << 0, Include = 1 << 0,
Exclude = 1 << 1 Exclude = 1 << 1,
All = Include | Exclude
}; };
//! Supposed to be used only in filter operations //! Supposed to be used only in filter operations

View File

@@ -102,7 +102,7 @@ namespace BlackMisc
}); });
} }
CAircraftModelList CAircraftModelList::withAircraftDesignator() const CAircraftModelList CAircraftModelList::findWithAircraftDesignator() const
{ {
return this->findBy([ = ](const CAircraftModel & model) return this->findBy([ = ](const CAircraftModel & model)
{ {
@@ -110,7 +110,7 @@ namespace BlackMisc
}); });
} }
CAircraftModelList CAircraftModelList::withAircraftDesignator(const QStringList &designators) const CAircraftModelList CAircraftModelList::findWithAircraftDesignator(const QStringList &designators) const
{ {
if (designators.isEmpty()) { return CAircraftModelList(); } if (designators.isEmpty()) { return CAircraftModelList(); }
return this->findBy([ = ](const CAircraftModel & model) return this->findBy([ = ](const CAircraftModel & model)
@@ -119,7 +119,7 @@ namespace BlackMisc
}); });
} }
CAircraftModelList CAircraftModelList::withKnownAircraftDesignator() const CAircraftModelList CAircraftModelList::findWithKnownAircraftDesignator() const
{ {
return this->findBy([ = ](const CAircraftModel & model) return this->findBy([ = ](const CAircraftModel & model)
{ {
@@ -127,7 +127,16 @@ namespace BlackMisc
}); });
} }
CAircraftModelList CAircraftModelList::byDistributor(const CDistributorList &distributors) const CAircraftModelList CAircraftModelList::matchesSimulator(const CSimulatorInfo &simulator) const
{
const CSimulatorInfo::Simulator s = simulator.getSimulator();
return this->findBy([ = ](const CAircraftModel & model)
{
return (s & model.getSimulatorInfo().getSimulator()) > 0;
});
}
CAircraftModelList CAircraftModelList::findByDistributors(const CDistributorList &distributors) const
{ {
if (distributors.isEmpty()) { return CAircraftModelList(); } if (distributors.isEmpty()) { return CAircraftModelList(); }
return this->findBy([ = ](const CAircraftModel & model) return this->findBy([ = ](const CAircraftModel & model)
@@ -136,12 +145,40 @@ namespace BlackMisc
}); });
} }
void CAircraftModelList::setSimulatorInfo(const CSimulatorInfo &info) int CAircraftModelList::setSimulatorInfo(const CSimulatorInfo &info)
{ {
int c = 0;
const CSimulatorInfo::Simulator s = info.getSimulator();
for (CAircraftModel &model : (*this)) for (CAircraftModel &model : (*this))
{ {
if (model.getSimulatorInfo().getSimulator() == s) { continue; }
model.setSimulatorInfo(info); model.setSimulatorInfo(info);
c++;
} }
return c;
}
CSimulatorInfo CAircraftModelList::simulatorsSupported() const
{
CSimulatorInfo::Simulator s = CSimulatorInfo::None;
for (const CAircraftModel &model : (*this))
{
s |= model.getSimulatorInfo().getSimulator();
if (s == CSimulatorInfo::All) { break; }
}
return CSimulatorInfo(s);
}
int CAircraftModelList::setModelMode(CAircraftModel::ModelMode mode)
{
int c = 0;
for (CAircraftModel &model : (*this))
{
if (model.getModelMode() == mode) { continue; }
model.setModelMode(mode);
c++;
}
return c;
} }
int CAircraftModelList::keepModelsWithString(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity) int CAircraftModelList::keepModelsWithString(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity)
@@ -244,7 +281,7 @@ namespace BlackMisc
return validateForPublishing(invalidModels); return validateForPublishing(invalidModels);
} }
CStatusMessageList CAircraftModelList::validateForPublishing(CAircraftModelList &invalidModels) const CStatusMessageList CAircraftModelList::validateForPublishing(CAircraftModelList &validateModels) const
{ {
if (this->isEmpty()) { return CStatusMessageList(); } if (this->isEmpty()) { return CStatusMessageList(); }
CStatusMessageList msgs; CStatusMessageList msgs;
@@ -271,7 +308,7 @@ namespace BlackMisc
singleMsg.prependMessage(model.getModelString() + ": "); singleMsg.prependMessage(model.getModelString() + ": ");
} }
msgs.push_back(singleMsg); msgs.push_back(singleMsg);
invalidModels.push_back(model); validateModels.push_back(model);
} }
return msgs; return msgs;
} }

View File

@@ -69,20 +69,29 @@ namespace BlackMisc
//! With file name //! With file name
CAircraftModelList findWithFileName() const; CAircraftModelList findWithFileName() const;
//! All models from given distributors
CAircraftModelList findByDistributors(const CDistributorList &distributors) const;
//! Models with aircraft ICAO code set //! Models with aircraft ICAO code set
CAircraftModelList withAircraftDesignator() const; CAircraftModelList findWithAircraftDesignator() const;
//! Models with aircraft ICAO code from list //! Models with aircraft ICAO code from list
CAircraftModelList withAircraftDesignator(const QStringList &designators) const; CAircraftModelList findWithAircraftDesignator(const QStringList &designators) const;
//! Models with a known aircraft ICAO code set //! Models with a known aircraft ICAO code set
CAircraftModelList withKnownAircraftDesignator() const; CAircraftModelList findWithKnownAircraftDesignator() const;
//! All models from given distributors //! Find for given simulator
CAircraftModelList byDistributor(const CDistributorList &distributors) const; CAircraftModelList matchesSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator) const;
//! Set simulator for all elements //! Set simulator for all elements
void setSimulatorInfo(const BlackMisc::Simulation::CSimulatorInfo &info); int setSimulatorInfo(const BlackMisc::Simulation::CSimulatorInfo &info);
//! Which simulators are supported in that model list
CSimulatorInfo simulatorsSupported() const;
//! Set mode for all elements
int setModelMode(BlackMisc::Simulation::CAircraftModel::ModelMode mode);
//! Keep only those models with given model strings //! Keep only those models with given model strings
//! \return number of elements removed //! \return number of elements removed
@@ -112,7 +121,7 @@ namespace BlackMisc
CStatusMessageList validateForPublishing() const; CStatusMessageList validateForPublishing() const;
//! Validate for publishing //! Validate for publishing
CStatusMessageList validateForPublishing(CAircraftModelList &invalidModels) const; CStatusMessageList validateForPublishing(CAircraftModelList &validateModels) const;
//! To database JSON //! To database JSON
QJsonArray toDatabaseJson() const; QJsonArray toDatabaseJson() const;