refs #364, refs #368 improved handling of manually set models

* make sure manually set model is not subject of model matching
* added convenience member functions to detect manually set models
This commit is contained in:
Klaus Basan
2015-01-25 03:54:47 +01:00
parent 2e06f054e8
commit 3a4e5ef556
8 changed files with 44 additions and 13 deletions

View File

@@ -104,6 +104,16 @@ namespace BlackMisc
this->m_icao.updateMissingParts(model.getIcao());
}
bool CAircraftModel::hasQueriedModelString() const
{
return this->m_modelType == TypeQueriedFromNetwork && this->hasModelString();
}
bool CAircraftModel::hasManuallySetString() const
{
return this->m_modelType == TypeManuallySet && this->hasModelString();
}
bool CAircraftModel::matchesModelString(const QString &modelString, Qt::CaseSensitivity sensitivity) const
{
if (sensitivity == Qt::CaseSensitive)

View File

@@ -120,7 +120,10 @@ namespace BlackMisc
void updateMissingParts(const CAircraftModel &model);
//! Queried model string?
bool hasQueriedModelString() const { return this->m_modelType == TypeQueriedFromNetwork && this->hasModelString(); }
bool hasQueriedModelString() const;
//! Model string which was manually set
bool hasManuallySetString() const;
//! Non empty model string
bool hasModelString() const { return !m_modelString.isEmpty(); }

View File

@@ -79,10 +79,10 @@ namespace BlackMisc
return this->contains(&CSimulatedAircraft::getCallsign, callsign);
}
int CSimulatedAircraftList::incrementalUpdateOrAdd(const CSimulatedAircraft &changedAircraft, const CPropertyIndexVariantMap &changedValues)
int CSimulatedAircraftList::incrementalUpdateOrAdd(const CSimulatedAircraft &toChangeAircraft, const CPropertyIndexVariantMap &changedValues)
{
int c;
const CCallsign cs = changedAircraft.getCallsign();
const CCallsign cs = toChangeAircraft.getCallsign();
if (this->containsCallsign(cs))
{
if (changedValues.isEmpty()) { return 0; }
@@ -91,7 +91,16 @@ namespace BlackMisc
else
{
c = 1;
this->push_back(changedAircraft);
if (changedValues.isEmpty())
{
this->push_back(toChangeAircraft);
}
else
{
CSimulatedAircraft addAircraft(toChangeAircraft);
addAircraft.apply(changedValues);
this->push_back(addAircraft);
}
}
return c;
}

View File

@@ -48,7 +48,7 @@ namespace BlackMisc
bool containsCallsign(const BlackMisc::Aviation::CCallsign &callsign) const;
//! Incremental update or add aircraft
int incrementalUpdateOrAdd(const BlackMisc::Simulation::CSimulatedAircraft &changedAircraft, const BlackMisc::CPropertyIndexVariantMap &changedValues);
int incrementalUpdateOrAdd(const BlackMisc::Simulation::CSimulatedAircraft &toChangeAircraft, const BlackMisc::CPropertyIndexVariantMap &changedValues);
//! All pilots (with valid data)
BlackMisc::Network::CUserList getPilots() const;