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

@@ -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;
}