PartDesign: Fix mirror Add/remove buttons
This commit is contained in:
committed by
Chris Hennes
parent
26863fe895
commit
1b799ad355
@@ -129,25 +129,32 @@ void TaskMirroredParameters::updateUI()
|
||||
|
||||
void TaskMirroredParameters::onSelectionChanged(const Gui::SelectionChanges& msg)
|
||||
{
|
||||
if (selectionMode != SelectionMode::None && msg.Type == Gui::SelectionChanges::AddSelection) {
|
||||
|
||||
auto pcMirrored = getObject<PartDesign::Mirrored>();
|
||||
|
||||
std::vector<std::string> mirrorPlanes;
|
||||
App::DocumentObject* selObj = nullptr;
|
||||
getReferencedSelection(pcMirrored, msg, selObj, mirrorPlanes);
|
||||
if (!selObj) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (selectionMode == SelectionMode::Reference || selObj->isDerivedFrom<App::Plane>()) {
|
||||
setupTransaction();
|
||||
pcMirrored->MirrorPlane.setValue(selObj, mirrorPlanes);
|
||||
recomputeFeature();
|
||||
updateUI();
|
||||
}
|
||||
exitSelectionMode();
|
||||
// Handle selection ONLY when in reference selection mode
|
||||
if (selectionMode == SelectionMode::None || msg.Type != Gui::SelectionChanges::AddSelection) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (originalSelected(msg)) {
|
||||
exitSelectionMode();
|
||||
return;
|
||||
}
|
||||
|
||||
auto pcMirrored = getObject<PartDesign::Mirrored>();
|
||||
|
||||
std::vector<std::string> mirrorPlanes;
|
||||
App::DocumentObject* selObj = nullptr;
|
||||
getReferencedSelection(pcMirrored, msg, selObj, mirrorPlanes);
|
||||
if (!selObj) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (selectionMode == SelectionMode::Reference || selObj->isDerivedFrom<App::Plane>()) {
|
||||
setupTransaction();
|
||||
pcMirrored->MirrorPlane.setValue(selObj, mirrorPlanes);
|
||||
recomputeFeature();
|
||||
updateUI();
|
||||
}
|
||||
exitSelectionMode();
|
||||
}
|
||||
|
||||
void TaskMirroredParameters::onPlaneChanged(int /*num*/)
|
||||
|
||||
Reference in New Issue
Block a user