- if (aIt->second == ModelAPI_Folder::group())
- isRebuildTree = true;
- QTreeNodesList aList = myRoot->objectsDeleted(aIt->first, aIt->second.c_str());
+ aList.append(myRoot->objectsDeleted(aIt->first, aIt->second.c_str()));
+ }
+ // Remove obsolete nodes
+ QTreeNodesList aRemaining;
+ foreach(ModuleBase_ITreeNode* aNode, aList) {
+ if (myRoot->hasSubNode(aNode))
+ aRemaining.append(aNode);
+ }
+ // Update remaining nodes
+ foreach(ModuleBase_ITreeNode* aNode, aRemaining) {
+ if (aNode->parent())
+ aNode->parent()->update();