refs #618, allow to update/add models based on model string

* functionality in list
* access via view
* fixed count for changed objects in datastoreobjectlist (now detects replacements)
This commit is contained in:
Klaus Basan
2016-03-22 08:03:36 +01:00
parent 7beb5661a3
commit 6fdddf8f93
5 changed files with 36 additions and 2 deletions

View File

@@ -160,6 +160,23 @@ namespace BlackMisc
return d;
}
int CAircraftModelList::replaceOrAddModelsWithString(const CAircraftModelList &addOrReplaceList, Qt::CaseSensitivity sensitivity)
{
if (addOrReplaceList.isEmpty()) { return 0; }
if (this->isEmpty())
{
*this = addOrReplaceList;
return addOrReplaceList.size();
}
CAircraftModelList newModels(*this);
const QStringList keys(addOrReplaceList.getModelStrings(false));
newModels.removeModelsWithString(keys, sensitivity);
int removed = newModels.size(); // size after removing
newModels.push_back(addOrReplaceList);
*this = newModels;
return this->size() - removed;
}
CAircraftModelList CAircraftModelList::findModelsStartingWith(const QString &modelString, Qt::CaseSensitivity sensitivity) const
{
return this->findBy([ = ](const CAircraftModel & model)