From 5642620281df4931c39d479415f803ffcc366a25 Mon Sep 17 00:00:00 2001 From: Ryan Kembrey Date: Sun, 14 Sep 2025 16:38:53 +1000 Subject: [PATCH] TechDraw: Fix projection groups not recursively deleting --- src/Mod/TechDraw/App/DrawProjGroup.cpp | 22 ++++++++++++++++++++++ src/Mod/TechDraw/App/DrawProjGroup.h | 1 + 2 files changed, 23 insertions(+) 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