From bef6aafa73b4ef41f38192d9d19835e60de15f7b Mon Sep 17 00:00:00 2001 From: wandererfan Date: Thu, 22 Jan 2026 16:14:39 -0500 Subject: [PATCH] [TD]handle AutoDistribute property toggle --- .../TechDraw/Gui/ViewProviderProjGroup.cpp | 31 +++++++++++++++++++ src/Mod/TechDraw/Gui/ViewProviderProjGroup.h | 3 ++ 2 files changed, 34 insertions(+) diff --git a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp index f179f4e6dc..b5554e2d39 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp @@ -43,6 +43,7 @@ #include "TaskProjGroup.h" #include "QGIViewPart.h" +#include "QGIProjGroup.h" #include "QGSPage.h" #include "ViewProviderPage.h" #include "ViewProviderProjGroup.h" @@ -240,3 +241,33 @@ void ViewProviderProjGroup::regroupSubViews() } } +void ViewProviderProjGroup::updateData(const App::Property* prop) +{ + TechDraw::DrawProjGroup* group = getViewObject(); + if (prop == &group->AutoDistribute) { + onChangeAutoDistribute(); + return; + } + + ViewProviderDrawingView::updateData(prop); +} + +void ViewProviderProjGroup::onChangeAutoDistribute() +{ + auto* groupQGI = static_cast(getQView()); + if (!groupQGI) { + // our QGItem does not exist yet + return; + } + + QList secondaryQViews = groupQGI->secondaryQViews(); + for (auto& secondary : secondaryQViews) { + if (secondary == groupQGI->getAnchorQItem()) { + // do not touch the anchor + continue; + } + secondary->updateView(false); + } +} + + diff --git a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.h b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.h index 49e837d1be..0e50652312 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.h +++ b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.h @@ -55,6 +55,9 @@ public: bool canDelete(App::DocumentObject* obj) const override; void regroupSubViews(); + void updateData(const App::Property* prop) override; + void onChangeAutoDistribute(); + protected: bool setEdit(int ModNum) override;