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

@@ -51,7 +51,8 @@ namespace BlackMisc
{
Undefined = 0,
Include = 1 << 0,
Exclude = 1 << 1
Exclude = 1 << 1,
All = Include | Exclude
};
//! 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)
{
@@ -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(); }
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)
{
@@ -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(); }
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))
{
if (model.getSimulatorInfo().getSimulator() == s) { continue; }
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)
@@ -244,7 +281,7 @@ namespace BlackMisc
return validateForPublishing(invalidModels);
}
CStatusMessageList CAircraftModelList::validateForPublishing(CAircraftModelList &invalidModels) const
CStatusMessageList CAircraftModelList::validateForPublishing(CAircraftModelList &validateModels) const
{
if (this->isEmpty()) { return CStatusMessageList(); }
CStatusMessageList msgs;
@@ -271,7 +308,7 @@ namespace BlackMisc
singleMsg.prependMessage(model.getModelString() + ": ");
}
msgs.push_back(singleMsg);
invalidModels.push_back(model);
validateModels.push_back(model);
}
return msgs;
}

View File

@@ -69,20 +69,29 @@ namespace BlackMisc
//! With file name
CAircraftModelList findWithFileName() const;
//! All models from given distributors
CAircraftModelList findByDistributors(const CDistributorList &distributors) const;
//! Models with aircraft ICAO code set
CAircraftModelList withAircraftDesignator() const;
CAircraftModelList findWithAircraftDesignator() const;
//! 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
CAircraftModelList withKnownAircraftDesignator() const;
CAircraftModelList findWithKnownAircraftDesignator() const;
//! All models from given distributors
CAircraftModelList byDistributor(const CDistributorList &distributors) const;
//! Find for given simulator
CAircraftModelList matchesSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator) const;
//! 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
//! \return number of elements removed
@@ -112,7 +121,7 @@ namespace BlackMisc
CStatusMessageList validateForPublishing() const;
//! Validate for publishing
CStatusMessageList validateForPublishing(CAircraftModelList &invalidModels) const;
CStatusMessageList validateForPublishing(CAircraftModelList &validateModels) const;
//! To database JSON
QJsonArray toDatabaseJson() const;