diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 797472aec4..bec9348707 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -398,6 +398,7 @@ ViewProviderSketch::ViewProviderSketch() ViewProviderSketch::~ViewProviderSketch() { delete rubberband; + unsubscribeToParameters(); } void ViewProviderSketch::slotUndoDocument(const Gui::Document& /*doc*/) @@ -3798,6 +3799,12 @@ void ViewProviderSketch::subscribeToParameters() hGrp->Attach(this); } +void ViewProviderSketch::unsubscribeToParameters() +{ + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/View"); + hGrp->Detach(this); +} + void ViewProviderSketch::updateInventorNodeSizes() { assert(edit); diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index fae7607729..117392bbd2 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -311,6 +311,8 @@ protected: void initItemsSizes(); /// subscribe to parameter groups as an observer void subscribeToParameters(); + /// unsubscribe to parameter groups as an observer + void unsubscribeToParameters(); /// updates the sizes of the edit mode inventor node void updateInventorNodeSizes();