diff --git a/src/Gui/ViewProviderDragger.cpp b/src/Gui/ViewProviderDragger.cpp index db05448710..1b001ec006 100644 --- a/src/Gui/ViewProviderDragger.cpp +++ b/src/Gui/ViewProviderDragger.cpp @@ -62,11 +62,6 @@ PROPERTY_SOURCE(Gui::ViewProviderDragger, Gui::ViewProviderDocumentObject) ViewProviderDragger::ViewProviderDragger() { ADD_PROPERTY_TYPE(TransformOrigin, ({}), nullptr, App::Prop_Hidden, nullptr); - ADD_PROPERTY_TYPE(ShowPlacement, - (false), - "Display Options", - App::Prop_None, - "If true, placement of object is additionally rendered."); pcPlacement = new SoSwitch; pcPlacement->whichChild = SO_SWITCH_NONE; @@ -108,9 +103,6 @@ void ViewProviderDragger::onChanged(const App::Property* property) if (property == &TransformOrigin) { updateDraggerPosition(); } - else if (property == &ShowPlacement || property == &Visibility) { - pcPlacement->whichChild = (ShowPlacement.getValue() && Visibility.getValue()) ? SO_SWITCH_ALL : SO_SWITCH_NONE; - } ViewProviderDocumentObject::onChanged(property); } diff --git a/src/Gui/ViewProviderDragger.h b/src/Gui/ViewProviderDragger.h index a0635ef2c6..ad1b18d1f7 100644 --- a/src/Gui/ViewProviderDragger.h +++ b/src/Gui/ViewProviderDragger.h @@ -56,10 +56,6 @@ public: /// destructor. ~ViewProviderDragger() override; - /// Property controlling visibility of the placement indicator, useful for displaying origin - /// position of attached Document Object. - App::PropertyBool ShowPlacement; - /// Origin used when object is transformed. It temporarily changes the origin of object. /// Dragger is normally placed at the transform origin, unless explicitly overridden via /// ViewProviderDragger#setDraggerPlacement() method. diff --git a/src/Mod/Part/Gui/ViewProviderExt.cpp b/src/Mod/Part/Gui/ViewProviderExt.cpp index 6c771fa64e..1d9df50d3f 100644 --- a/src/Mod/Part/Gui/ViewProviderExt.cpp +++ b/src/Mod/Part/Gui/ViewProviderExt.cpp @@ -184,6 +184,7 @@ ViewProviderPartExt::ViewProviderPartExt() Lighting.setEnums(LightingEnums); ADD_PROPERTY_TYPE(DrawStyle,((long int)0), osgroup, App::Prop_None, "Defines the style of the edges in the 3D view."); DrawStyle.setEnums(DrawStyleEnums); + ADD_PROPERTY_TYPE(ShowPlacement,(false), "Display Options", App::Prop_None, "If true, placement of object is additionally rendered."); coords = new SoCoordinate3(); coords->ref(); @@ -373,6 +374,9 @@ void ViewProviderPartExt::onChanged(const App::Property* prop) else pcLineStyle->linePattern = 0xff88; } + else if (prop == &ShowPlacement) { + pcPlacement->whichChild = (ShowPlacement.getValue() && Visibility.getValue()) ? SO_SWITCH_ALL : SO_SWITCH_NONE; + } else { // if the object was invisible and has been changed, recreate the visual if (prop == &Visibility && (isUpdateForced() || Visibility.getValue()) && VisualTouched) { @@ -385,6 +389,7 @@ void ViewProviderPartExt::onChanged(const App::Property* prop) App::Property::NoModify, &ShapeAppearance); // The material has to be checked again (#0001736) onChanged(&ShapeAppearance); + onChanged(&ShowPlacement); } } diff --git a/src/Mod/Part/Gui/ViewProviderExt.h b/src/Mod/Part/Gui/ViewProviderExt.h index 4234451d02..43f26ea84f 100644 --- a/src/Mod/Part/Gui/ViewProviderExt.h +++ b/src/Mod/Part/Gui/ViewProviderExt.h @@ -76,6 +76,8 @@ public: App::PropertyAngle AngularDeflection; App::PropertyEnumeration Lighting; App::PropertyEnumeration DrawStyle; + /// Property controlling visibility of the placement indicator, useful for displaying origin + /// position of attached Document Object. App::PropertyBool ShowPlacement; // Points App::PropertyFloatConstraint PointSize; diff --git a/src/Mod/PartDesign/Gui/ViewProvider.cpp b/src/Mod/PartDesign/Gui/ViewProvider.cpp index ef28139a2f..b435320fea 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.cpp +++ b/src/Mod/PartDesign/Gui/ViewProvider.cpp @@ -238,7 +238,7 @@ QIcon ViewProvider::mergeColorfulOverlayIcons (const QIcon & orig) const return Gui::ViewProvider::mergeColorfulOverlayIcons (mergedicon); } -bool ViewProvider::onDelete(const std::vector &) +bool ViewProvider::onDelete(const std::vector&) { PartDesign::Feature* feature = getObject(); diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp index 6312b84a0e..860af076b4 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp @@ -282,6 +282,7 @@ void ViewProviderBody::unifyVisualProperty(const App::Property* prop) { prop == &Selectable || prop == &DisplayModeBody || prop == &PointColorArray || + prop == &ShowPlacement || prop == &LineColorArray) { return; }