diff --git a/src/Mod/PartDesign/App/FeatureExtrude.cpp b/src/Mod/PartDesign/App/FeatureExtrude.cpp index 54a3599328..5561aeffc2 100644 --- a/src/Mod/PartDesign/App/FeatureExtrude.cpp +++ b/src/Mod/PartDesign/App/FeatureExtrude.cpp @@ -126,6 +126,16 @@ Base::Vector3d FeatureExtrude::computeDirection(const Base::Vector3d& sketchVect // explicitly set the Direction so that the dialog shows also the used direction // if the sketch's normal vector was used - Direction.setValue(extrudeDirection); + // for a custom vector we cannot negate it since the Ui takes always the currently + // shown vector values as final direction, + // and when Reversed, it will be negated additionally + if (!UseCustomVector.getValue()) { + if (Reversed.getValue()) + Direction.setValue(-extrudeDirection); + else + Direction.setValue(extrudeDirection); + } + // don't return the direction including reversed since this is handled in + // FeatureSketchBased.cpp afterwards return extrudeDirection; } diff --git a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp index 1d6cbf128d..03651459d5 100644 --- a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp @@ -551,23 +551,16 @@ void TaskPadParameters::onZDirectionEditChanged(double len) updateDirectionEdits(); } -void TaskPadParameters::updateDirectionEdits(bool Reversed) +void TaskPadParameters::updateDirectionEdits() { PartDesign::Pad* pcPad = static_cast(vp->getObject()); // we don't want to execute the onChanged edits, but just update their contents ui->XDirectionEdit->blockSignals(true); ui->YDirectionEdit->blockSignals(true); ui->ZDirectionEdit->blockSignals(true); - if (Reversed) { - ui->XDirectionEdit->setValue(-1 * pcPad->Direction.getValue().x); - ui->YDirectionEdit->setValue(-1 * pcPad->Direction.getValue().y); - ui->ZDirectionEdit->setValue(-1 * pcPad->Direction.getValue().z); - } - else { - ui->XDirectionEdit->setValue(pcPad->Direction.getValue().x); - ui->YDirectionEdit->setValue(pcPad->Direction.getValue().y); - ui->ZDirectionEdit->setValue(pcPad->Direction.getValue().z); - } + ui->XDirectionEdit->setValue(pcPad->Direction.getValue().x); + ui->YDirectionEdit->setValue(pcPad->Direction.getValue().y); + ui->ZDirectionEdit->setValue(pcPad->Direction.getValue().z); ui->XDirectionEdit->blockSignals(false); ui->YDirectionEdit->blockSignals(false); ui->ZDirectionEdit->blockSignals(false); @@ -595,9 +588,10 @@ void TaskPadParameters::onReversedChanged(bool on) pcPad->Reversed.setValue(on); // midplane is not sensible when reversed ui->checkBoxMidplane->setEnabled(!on); - recomputeFeature(); // update the direction - updateDirectionEdits(on); + recomputeFeature(); + updateDirectionEdits(); + } void TaskPadParameters::onModeChanged(int index) diff --git a/src/Mod/PartDesign/Gui/TaskPadParameters.h b/src/Mod/PartDesign/Gui/TaskPadParameters.h index 54f6ca1d77..174fe43fad 100644 --- a/src/Mod/PartDesign/Gui/TaskPadParameters.h +++ b/src/Mod/PartDesign/Gui/TaskPadParameters.h @@ -96,7 +96,7 @@ private: QString getFaceName(void) const; void onSelectionChanged(const Gui::SelectionChanges& msg) override; void updateUI(int index); - void updateDirectionEdits(bool Reversed = false); + void updateDirectionEdits(void); private: QWidget* proxy; diff --git a/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp b/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp index d7df987fac..c41d0d9a0c 100644 --- a/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp @@ -556,23 +556,16 @@ void TaskPocketParameters::onZDirectionEditChanged(double len) updateDirectionEdits(); } -void TaskPocketParameters::updateDirectionEdits(bool Reversed) +void TaskPocketParameters::updateDirectionEdits() { PartDesign::Pocket* pcPocket = static_cast(vp->getObject()); // we don't want to execute the onChanged edits, but just update their contents ui->XDirectionEdit->blockSignals(true); ui->YDirectionEdit->blockSignals(true); ui->ZDirectionEdit->blockSignals(true); - if (Reversed) { - ui->XDirectionEdit->setValue(-1 * pcPocket->Direction.getValue().x); - ui->YDirectionEdit->setValue(-1 * pcPocket->Direction.getValue().y); - ui->ZDirectionEdit->setValue(-1 * pcPocket->Direction.getValue().z); - } - else { - ui->XDirectionEdit->setValue(pcPocket->Direction.getValue().x); - ui->YDirectionEdit->setValue(pcPocket->Direction.getValue().y); - ui->ZDirectionEdit->setValue(pcPocket->Direction.getValue().z); - } + ui->XDirectionEdit->setValue(pcPocket->Direction.getValue().x); + ui->YDirectionEdit->setValue(pcPocket->Direction.getValue().y); + ui->ZDirectionEdit->setValue(pcPocket->Direction.getValue().z); ui->XDirectionEdit->blockSignals(false); ui->YDirectionEdit->blockSignals(false); ui->ZDirectionEdit->blockSignals(false); @@ -592,9 +585,9 @@ void TaskPocketParameters::onReversedChanged(bool on) pcPocket->Reversed.setValue(on); // midplane is not sensible when reversed ui->checkBoxMidplane->setEnabled(!on); - recomputeFeature(); // update the direction - updateDirectionEdits(on); + recomputeFeature(); + updateDirectionEdits(); } void TaskPocketParameters::onModeChanged(int index) diff --git a/src/Mod/PartDesign/Gui/TaskPocketParameters.h b/src/Mod/PartDesign/Gui/TaskPocketParameters.h index 1b57c3061b..db6e8abdef 100644 --- a/src/Mod/PartDesign/Gui/TaskPocketParameters.h +++ b/src/Mod/PartDesign/Gui/TaskPocketParameters.h @@ -97,7 +97,7 @@ private: void onSelectionChanged(const Gui::SelectionChanges& msg) override; void updateUI(int index); - void updateDirectionEdits(bool Reversed = false); + void updateDirectionEdits(void); private: QWidget* proxy;