diff --git a/src/Mod/PartDesign/App/Feature.cpp b/src/Mod/PartDesign/App/Feature.cpp index d679acd352..d6e9a31dc8 100644 --- a/src/Mod/PartDesign/App/Feature.cpp +++ b/src/Mod/PartDesign/App/Feature.cpp @@ -54,12 +54,13 @@ PROPERTY_SOURCE(PartDesign::Feature,Part::Feature) Feature::Feature() { ADD_PROPERTY(BaseFeature,(nullptr)); - ADD_PROPERTY(Suppressed,(false)); ADD_PROPERTY_TYPE(_Body,(nullptr),"Base",(App::PropertyType)( App::Prop_ReadOnly|App::Prop_Hidden|App::Prop_Output|App::Prop_Transient),0); Placement.setStatus(App::Property::Hidden, true); BaseFeature.setStatus(App::Property::Hidden, true); - Suppressed.setStatus(App::Property::Hidden, true); + + App::SuppressibleExtension::initExtension(this); + Suppressed.setStatus(App::Property::Status::Hidden, true); //Todo: remove when TNP fixed } App::DocumentObjectExecReturn* Feature::recompute() diff --git a/src/Mod/PartDesign/App/Feature.h b/src/Mod/PartDesign/App/Feature.h index 2c471992a5..8c47700333 100644 --- a/src/Mod/PartDesign/App/Feature.h +++ b/src/Mod/PartDesign/App/Feature.h @@ -25,6 +25,7 @@ #define PARTDESIGN_Feature_H #include +#include #include #include @@ -44,7 +45,7 @@ class Body; * Base class of all PartDesign features. * This kind of features only produce solids or fail. */ -class PartDesignExport Feature : public Part::Feature +class PartDesignExport Feature : public Part::Feature, public App::SuppressibleExtension { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Feature); @@ -55,8 +56,6 @@ public: App::PropertyLink BaseFeature; App::PropertyLinkHidden _Body; - App::PropertyBool Suppressed; - App::DocumentObjectExecReturn* recompute() override; short mustExecute() const override; diff --git a/src/Mod/PartDesign/App/FeatureBoolean.cpp b/src/Mod/PartDesign/App/FeatureBoolean.cpp index 3df796e4e3..50451cd2a7 100644 --- a/src/Mod/PartDesign/App/FeatureBoolean.cpp +++ b/src/Mod/PartDesign/App/FeatureBoolean.cpp @@ -57,7 +57,8 @@ Boolean::Boolean() this->Refine.setValue(hGrp->GetBool("RefineModel", false)); ADD_PROPERTY_TYPE(UsePlacement,(0),"Part Design",(App::PropertyType)(App::Prop_None),"Apply the placement of the second ( tool ) object"); this->UsePlacement.setValue(false); - initExtension(this); + + App::GeoFeatureGroupExtension::initExtension(this); } short Boolean::mustExecute() const diff --git a/src/Mod/PartDesign/Gui/ViewProvider.cpp b/src/Mod/PartDesign/Gui/ViewProvider.cpp index 14874a71fc..efdcb7ad30 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.cpp +++ b/src/Mod/PartDesign/Gui/ViewProvider.cpp @@ -51,6 +51,7 @@ PROPERTY_SOURCE_WITH_EXTENSIONS(PartDesignGui::ViewProvider, PartGui::ViewProvid ViewProvider::ViewProvider() { + ViewProviderSuppressibleExtension::initExtension(this); PartGui::ViewProviderAttachExtension::initExtension(this); } diff --git a/src/Mod/PartDesign/Gui/ViewProvider.h b/src/Mod/PartDesign/Gui/ViewProvider.h index 05f87bbf32..98bae5ca2a 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.h +++ b/src/Mod/PartDesign/Gui/ViewProvider.h @@ -27,6 +27,7 @@ #include #include "ViewProviderBody.h" #include +#include "Gui/ViewProviderSuppressibleExtension.h" #include @@ -37,7 +38,9 @@ class TaskDlgFeatureParameters; /** * A common base class for all part design features view providers */ -class PartDesignGuiExport ViewProvider : public PartGui::ViewProviderPart, PartGui::ViewProviderAttachExtension +class PartDesignGuiExport ViewProvider : public PartGui::ViewProviderPart, + Gui::ViewProviderSuppressibleExtension, + PartGui::ViewProviderAttachExtension { using inherited = PartGui::ViewProviderPart; PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProvider);