From c1d3cb5feefdb8657f53b51c1fe2ff49ea84766a Mon Sep 17 00:00:00 2001 From: Uwe Date: Sat, 8 Jan 2022 01:15:23 +0100 Subject: [PATCH] [PD] Pad/Pocket: fix reverse behavior - bring back intended behavior as in FC 0.19: - if 2 lengths, then midplane is invisible - if reversed checked, then no symmetric and if symmetric then no reverse - unify the code for Pad and Pocket (reversed is always visible) - fix a typo in a bool name --- src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp | 2 ++ src/Mod/PartDesign/Gui/TaskPadParameters.cpp | 13 +------------ src/Mod/PartDesign/Gui/TaskPocketParameters.cpp | 14 +++++++------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp b/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp index 36f0b41387..414dd553d4 100644 --- a/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp @@ -522,6 +522,7 @@ void TaskExtrudeParameters::onMidplaneChanged(bool on) { PartDesign::FeatureExtrude* extrude = static_cast(vp->getObject()); extrude->Midplane.setValue(on); + ui->checkBoxReversed->setEnabled(!on); tryRecomputeFeature(); } @@ -529,6 +530,7 @@ void TaskExtrudeParameters::onReversedChanged(bool on) { PartDesign::FeatureExtrude* extrude = static_cast(vp->getObject()); extrude->Reversed.setValue(on); + ui->checkBoxMidplane->setEnabled(!on); // update the direction tryRecomputeFeature(); updateDirectionEdits(); diff --git a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp index e17053f7e6..52f6309f87 100644 --- a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp @@ -89,7 +89,6 @@ void TaskPadParameters::updateUI(int index) bool isMidplaneEnabled = false; bool isMidplaneVisible = false; bool isReversedEnabled = false; - bool isReversedVisible = false; bool isFaceEditEnabled = false; Modes mode = static_cast(index); @@ -97,20 +96,15 @@ void TaskPadParameters::updateUI(int index) if (mode == Modes::Dimension) { isLengthEditVisible = true; ui->lengthEdit->selectNumber(); - // Make sure that the spin box has the focus to get key events - // Calling setFocus() directly doesn't work because the spin box is not - // yet visible. QMetaObject::invokeMethod(ui->lengthEdit, "setFocus", Qt::QueuedConnection); isMidplaneEnabled = !ui->checkBoxReversed->isChecked(); isMidplaneVisible = true; // Reverse only makes sense if Midplane is not true isReversedEnabled = !ui->checkBoxMidplane->isChecked(); - isReversedVisible = true; } else if (mode == Modes::ToLast || mode == Modes::ToFirst) { isOffsetEditVisible = true; isReversedEnabled = true; - isReversedVisible = true; } else if (mode == Modes::ToFace) { isOffsetEditVisible = true; @@ -120,15 +114,11 @@ void TaskPadParameters::updateUI(int index) if (ui->lineFaceName->property("FeatureName").isNull()) onButtonFace(true); isReversedEnabled = true; - isReversedVisible = true; } else if (mode == Modes::TwoDimensions) { isLengthEditVisible = true; isLengthEdit2Visible = true; - isMidplaneEnabled = !ui->checkBoxReversed->isChecked(); - isMidplaneVisible = true; - isReversedEnabled = !ui->checkBoxMidplane->isChecked(); - isReversedVisible = true; + isReversedEnabled = true; } ui->lengthEdit->setVisible( isLengthEditVisible ); @@ -144,7 +134,6 @@ void TaskPadParameters::updateUI(int index) ui->checkBoxMidplane->setVisible( isMidplaneVisible ); ui->checkBoxReversed->setEnabled( isReversedEnabled ); - ui->checkBoxReversed->setVisible( isReversedVisible ); ui->lengthEdit2->setVisible( isLengthEdit2Visible ); ui->lengthEdit2->setEnabled( isLengthEdit2Visible ); diff --git a/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp b/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp index d7302fae08..f25cd3cfce 100644 --- a/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp @@ -88,7 +88,8 @@ void TaskPocketParameters::updateUI(int index) bool isLengthEdit2Visible = false; bool isOffsetEditVisible = false; bool isOffsetEditEnabled = true; - bool isMidplateEnabled = false; + bool isMidplaneEnabled = false; + bool isMidplaneVisible = false; bool isReversedEnabled = false; bool isFaceEditEnabled = false; @@ -97,18 +98,16 @@ void TaskPocketParameters::updateUI(int index) if (mode == Modes::Dimension) { isLengthEditVisible = true; ui->lengthEdit->selectNumber(); - // Make sure that the spin box has the focus to get key events - // Calling setFocus() directly doesn't work because the spin box is not - // yet visible. QMetaObject::invokeMethod(ui->lengthEdit, "setFocus", Qt::QueuedConnection); - isMidplateEnabled = true; + isMidplaneVisible = true; + isMidplaneEnabled = true; // Reverse only makes sense if Midplane is not true isReversedEnabled = !ui->checkBoxMidplane->isChecked(); } else if (mode == Modes::ThroughAll) { isOffsetEditVisible = true; isOffsetEditEnabled = false; // offset may have some meaning for through all but it doesn't work - isMidplateEnabled = true; + isMidplaneEnabled = true; isReversedEnabled = !ui->checkBoxMidplane->isChecked(); } else if (mode == Modes::ToFirst) { @@ -146,7 +145,8 @@ void TaskPocketParameters::updateUI(int index) ui->offsetEdit->setEnabled( isOffsetEditVisible && isOffsetEditEnabled ); ui->labelOffset->setVisible( isOffsetEditVisible ); - ui->checkBoxMidplane->setEnabled( isMidplateEnabled ); + ui->checkBoxMidplane->setEnabled( isMidplaneEnabled ); + ui->checkBoxMidplane->setVisible(isMidplaneVisible); ui->checkBoxReversed->setEnabled( isReversedEnabled );