From 35ca189589832b8bbf3da6d9fd925ae1423a79d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Althaus?= Date: Tue, 12 Mar 2024 16:10:01 +0100 Subject: [PATCH] Fix regression in pattern reference selection Reference selection in the GUI was accidentially changed to only allow specific types of objects, preventing e.g. selection of a DatumPlane for mirroring. This restores the previous functionality. --- src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp | 6 ++---- src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp | 4 ++-- src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp | 5 ++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index 6819398580..e8c5ce071f 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -221,7 +221,7 @@ void TaskLinearPatternParameters::onSelectionChanged(const Gui::SelectionChanges if (originalSelected(msg)) { exitSelectionMode(); } - else if (selectionMode == SelectionMode::Reference) { + else { auto pcLinearPattern = static_cast(getObject()); std::vector directions; @@ -232,9 +232,7 @@ void TaskLinearPatternParameters::onSelectionChanged(const Gui::SelectionChanges } // Note: ReferenceSelection has already checked the selection for validity - if (selObj->isDerivedFrom() || selObj->isDerivedFrom() - || selObj->isDerivedFrom() - || selObj->isDerivedFrom()) { + if (selectionMode == SelectionMode::Reference || selObj->isDerivedFrom()) { setupTransaction(); pcLinearPattern->Direction.setValue(selObj, directions); recomputeFeature(); diff --git a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp index a1823d22ac..aa162d0116 100644 --- a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp @@ -134,7 +134,7 @@ void TaskMirroredParameters::onSelectionChanged(const Gui::SelectionChanges& msg if (originalSelected(msg)) { exitSelectionMode(); } - else if (selectionMode == SelectionMode::Reference) { + else { auto pcMirrored = static_cast(getObject()); std::vector mirrorPlanes; @@ -144,7 +144,7 @@ void TaskMirroredParameters::onSelectionChanged(const Gui::SelectionChanges& msg return; } - if (selObj->isDerivedFrom()) { + if (selectionMode == SelectionMode::Reference || selObj->isDerivedFrom()) { setupTransaction(); pcMirrored->MirrorPlane.setValue(selObj, mirrorPlanes); recomputeFeature(); diff --git a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp index a49879b30b..9eb97653c6 100644 --- a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp @@ -221,7 +221,7 @@ void TaskPolarPatternParameters::onSelectionChanged(const Gui::SelectionChanges& if (originalSelected(msg)) { exitSelectionMode(); } - else if (selectionMode == SelectionMode::Reference) { + else { auto pcPolarPattern = static_cast(getObject()); std::vector axes; @@ -231,8 +231,7 @@ void TaskPolarPatternParameters::onSelectionChanged(const Gui::SelectionChanges& return; } - if (selObj->isDerivedFrom() || selObj->isDerivedFrom() - || selObj->isDerivedFrom()) { + if (selectionMode == SelectionMode::Reference || selObj->isDerivedFrom()) { setupTransaction(); pcPolarPattern->Axis.setValue(selObj, axes); recomputeFeature();