From fb4721bcb262541f66d4fd78f824b82fcfc1667a Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Sat, 31 Jan 2026 15:19:36 +0100 Subject: [PATCH] Assembly: Remove solver msg when file is closed (#27210) --- src/Mod/Assembly/Gui/ViewProviderAssembly.cpp | 17 ++++++++++++----- src/Mod/Assembly/Gui/ViewProviderAssembly.h | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp b/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp index 0d51c8335d..98f3757cac 100644 --- a/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp +++ b/src/Mod/Assembly/Gui/ViewProviderAssembly.cpp @@ -130,6 +130,8 @@ ViewProviderAssembly::ViewProviderAssembly() ViewProviderAssembly::~ViewProviderAssembly() { m_preTransactionConn.disconnect(); + + removeTaskSolver(); }; QIcon ViewProviderAssembly::getIcon() const @@ -354,11 +356,7 @@ void ViewProviderAssembly::unsetEdit(int mode) ); } - Gui::TaskView::TaskView* taskView = Gui::Control().taskPanel(); - if (taskView) { - // Waiting for the solver to support reporting information. - taskView->removeContextualPanel(taskSolver); - } + removeTaskSolver(); connectSolverUpdate.disconnect(); connectActivatedVP.disconnect(); @@ -368,6 +366,15 @@ void ViewProviderAssembly::unsetEdit(int mode) ViewProviderPart::unsetEdit(mode); } +void ViewProviderAssembly::removeTaskSolver() +{ + Gui::TaskView::TaskView* taskView = Gui::Control().taskPanel(); + if (taskView) { + // Waiting for the solver to support reporting information. + taskView->removeContextualPanel(taskSolver); + } +} + void ViewProviderAssembly::slotActivatedVP(const Gui::ViewProviderDocumentObject* vp, const char* name) { if (name && strcmp(name, ASSEMBLYKEY) == 0) { diff --git a/src/Mod/Assembly/Gui/ViewProviderAssembly.h b/src/Mod/Assembly/Gui/ViewProviderAssembly.h index a6b37aa697..8e7f3e5049 100644 --- a/src/Mod/Assembly/Gui/ViewProviderAssembly.h +++ b/src/Mod/Assembly/Gui/ViewProviderAssembly.h @@ -254,6 +254,7 @@ public: private: bool tryMouseMove(const SbVec2s& cursorPos, Gui::View3DInventorViewer* viewer); void tryInitMove(const SbVec2s& cursorPos, Gui::View3DInventorViewer* viewer); + void removeTaskSolver(); void collectMovableObjects( App::DocumentObject* selRoot,