diff --git a/src/Mod/PartDesign/App/FeaturePolarPattern.cpp b/src/Mod/PartDesign/App/FeaturePolarPattern.cpp index d17e2072b6..aebf8fe0e8 100644 --- a/src/Mod/PartDesign/App/FeaturePolarPattern.cpp +++ b/src/Mod/PartDesign/App/FeaturePolarPattern.cpp @@ -26,6 +26,7 @@ # include # include # include +# include # include # include #endif @@ -140,12 +141,16 @@ const std::list PolarPattern::getTransformations(const std::vectorsetInterval(getUpdateViewTimeout()); connect(updateViewTimer, SIGNAL(timeout()), this, SLOT(onUpdateViewTimer())); - + connect(ui->comboAxis, SIGNAL(activated(int)), this, SLOT(onAxisChanged(int))); connect(ui->checkReverse, SIGNAL(toggled(bool)), @@ -249,7 +249,7 @@ void TaskPolarPatternParameters::removeObject(App::DocumentObject* obj) void TaskPolarPatternParameters::onSelectionChanged(const Gui::SelectionChanges& msg) { if (selectionMode!=none && msg.Type == Gui::SelectionChanges::AddSelection) { - + if (originalSelected(msg)) { exitSelectionMode(); } @@ -260,7 +260,7 @@ void TaskPolarPatternParameters::onSelectionChanged(const Gui::SelectionChanges& getReferencedSelection(pcPolarPattern, msg, selObj, axes); if(!selObj) return; - + if (selectionMode == reference || selObj->isDerivedFrom ( App::Line::getClassTypeId () ) ) { setupTransaction(); pcPolarPattern->Axis.setValue(selObj, axes); @@ -321,7 +321,7 @@ void TaskPolarPatternParameters::onAxisChanged(int /*num*/) showBase(); selectionMode = reference; Gui::Selection().clearSelection(); - addReferenceSelectionGate(true, false); + addReferenceSelectionGate(true, false, false, false, true); } else { exitSelectionMode(); pcPolarPattern->Axis.Paste(axesLinks.getCurrentLink()); diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp b/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp index fa5b10a5cf..db09de8d6a 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp @@ -205,7 +205,7 @@ void TaskTransformedParameters::checkVisibility() { auto inset = feat->getInListEx(true); inset.emplace(feat); for(auto o : body->Group.getValues()) { - if(!o->Visibility.getValue() + if(!o->Visibility.getValue() || !o->isDerivedFrom(PartDesign::Feature::getClassTypeId())) continue; if(inset.count(o)) @@ -410,10 +410,10 @@ void TaskTransformedParameters::exitSelectionMode() } } -void TaskTransformedParameters::addReferenceSelectionGate(bool edge, bool face, bool planar, bool whole) +void TaskTransformedParameters::addReferenceSelectionGate(bool edge, bool face, bool planar, bool whole, bool circle) { std::unique_ptr gateRefPtr( - new ReferenceSelection(getBaseObject(), edge, face, planar,false,whole)); + new ReferenceSelection(getBaseObject(), edge, face, planar, false, whole, circle)); std::unique_ptr gateDepPtr(new NoDependentsSelection(getTopTransformedObject())); Gui::Selection().addSelectionGate(new CombineSelectionFilterGates(gateRefPtr, gateDepPtr)); } diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.h b/src/Mod/PartDesign/Gui/TaskTransformedParameters.h index e4a6682e76..e8c98d75e4 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.h +++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.h @@ -136,7 +136,7 @@ public: App::DocumentObject *getBaseObject() const; /// Get the sketch object of the first original either of the object associated with this feature or with the parent feature (MultiTransform mode) - App::DocumentObject* getSketchObject() const; + App::DocumentObject* getSketchObject() const; void exitSelectionMode(); @@ -188,7 +188,7 @@ protected: void hideBase(); void showBase(); - void addReferenceSelectionGate(bool edge, bool face, bool planar=true, bool whole=false); + void addReferenceSelectionGate(bool edge, bool face, bool planar=true, bool whole=false, bool circle=false); bool isViewUpdated() const; int getUpdateViewTimeout() const; @@ -221,7 +221,7 @@ protected: /// Flag indicating whether this object is a container for MultiTransform bool insideMultiTransform; /// Lock updateUI(), applying changes to the underlying feature and calling recomputeFeature() - bool blockUpdate; + bool blockUpdate; }; /// simulation dialog for the TaskView