diff --git a/src/Mod/TechDraw/App/DrawProjGroup.cpp b/src/Mod/TechDraw/App/DrawProjGroup.cpp index c1c4ca5385..1a8d01c696 100644 --- a/src/Mod/TechDraw/App/DrawProjGroup.cpp +++ b/src/Mod/TechDraw/App/DrawProjGroup.cpp @@ -1211,3 +1211,25 @@ void DrawProjGroup::handleChangedPropertyType(Base::XMLReader& reader, const cha spacingY.setValue(spacingYProperty.getValue()); } } + +void DrawProjGroup::unsetupObject() +{ + if (getDocument() && !getDocument()->isAnyRestoring()) { + + std::vector childNamesToDelete; + for (App::DocumentObject* child : Views.getValues()) { + if (child) { + const char* name = child->getNameInDocument(); + if (name) { + childNamesToDelete.push_back(name); + } + } + } + + for (const std::string& childName : childNamesToDelete) { + getDocument()->removeObject(childName.c_str()); + } + } + + DrawViewCollection::unsetupObject(); +} diff --git a/src/Mod/TechDraw/App/DrawProjGroup.h b/src/Mod/TechDraw/App/DrawProjGroup.h index a10935a51c..fcd691bfdf 100644 --- a/src/Mod/TechDraw/App/DrawProjGroup.h +++ b/src/Mod/TechDraw/App/DrawProjGroup.h @@ -152,6 +152,7 @@ public: void dumpTouchedProps(); protected: + void unsetupObject() override; void onChanged(const App::Property* prop) override; /// Annoying helper - keep in sync with DrawProjGroupItem::TypeEnums