diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 6fb9eed083..e3dc0c6994 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -401,7 +401,13 @@ void ViewProviderSketch::ParameterObserver::OnChange(Base::Subject& { (void)rCaller; - auto key = parameterMap.find(sReason); + updateFromParameter(sReason); +} + +void SketcherGui::ViewProviderSketch::ParameterObserver::updateFromParameter(const char* parameter) +{ + auto key = parameterMap.find(parameter); + if (key != parameterMap.end()) { auto string = key->first; auto update = std::get<0>(key->second); @@ -2976,7 +2982,8 @@ void SketcherGui::ViewProviderSketch::finishRestoring() if (AutoColor.getValue()) { // update colors according to current user preferences - pObserver->initParameters(); + pObserver->updateFromParameter("SketchEdgeColor"); + pObserver->updateFromParameter("SketchVertexColor"); } } diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index 61837ec680..ae5b272690 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -174,6 +174,8 @@ private: /** Observer for parameter group. */ void OnChange(Base::Subject& rCaller, const char* sReason) override; + void updateFromParameter(const char* property); + private: void updateBoolProperty(const std::string& string, App::Property* property, bool defaultvalue);