skip delete entities not in the tree

This commit is contained in:
Andrew Meadows 2019-10-08 16:12:14 -07:00
parent 052a0c3ebe
commit 960646f117
2 changed files with 6 additions and 3 deletions

View file

@ -54,6 +54,7 @@ void DeleteEntityOperator::addEntityIDToDeleteList(const EntityItemID& searchEnt
} }
void DeleteEntityOperator::addEntityToDeleteList(const EntityItemPointer& entity) { void DeleteEntityOperator::addEntityToDeleteList(const EntityItemPointer& entity) {
assert(entity && entity->getElement());
EntityToDeleteDetails details; EntityToDeleteDetails details;
details.entity = entity; details.entity = entity;
details.containingElement = entity->getElement(); details.containingElement = entity->getElement();

View file

@ -736,9 +736,11 @@ void EntityTree::deleteEntitiesByPointer(const SetOfEntities& entities) {
} }
DeleteEntityOperator theOperator(getThisPointer()); DeleteEntityOperator theOperator(getThisPointer());
for (auto entity : entities) { for (auto entity : entities) {
theOperator.addEntityToDeleteList(entity); if (entity->getElement()) {
emit deletingEntity(entity->getID()); theOperator.addEntityToDeleteList(entity);
emit deletingEntityPointer(entity.get()); emit deletingEntity(entity->getID());
emit deletingEntityPointer(entity.get());
}
} }
if (!theOperator.getEntities().empty()) { if (!theOperator.getEntities().empty()) {