diff --git a/src/Mod/Part/Gui/DlgSettingsGeneral.ui b/src/Mod/Part/Gui/DlgSettingsGeneral.ui
index 90d019a585..06eb6e6cbf 100644
--- a/src/Mod/Part/Gui/DlgSettingsGeneral.ui
+++ b/src/Mod/Part/Gui/DlgSettingsGeneral.ui
@@ -7,7 +7,7 @@
0
0
550
- 552
+ 586
@@ -270,23 +270,10 @@
- -
-
-
- Allow multiple solids in Part Design bodies by default
-
-
- AllowCompoundDefault
-
-
- Mod/PartDesign
-
-
-
-
- Show interactive draggers during Part Design tasks
+ Show interactive draggers when editing features
true
diff --git a/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp b/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp
index ed5804c569..00a407a201 100644
--- a/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp
+++ b/src/Mod/PartDesign/Gui/TaskExtrudeParameters.cpp
@@ -334,11 +334,13 @@ void TaskExtrudeParameters::connectSlots()
void TaskExtrudeParameters::onModeChanged_Side1(int index)
{
onModeChanged(index, Side::First);
+ setGizmoPositions();
}
void TaskExtrudeParameters::onModeChanged_Side2(int index)
{
onModeChanged(index, Side::Second);
+ setGizmoPositions();
}
void TaskExtrudeParameters::onSelectShapeFacesToggle(bool checked, Side side)
@@ -1391,17 +1393,21 @@ void TaskExtrudeParameters::setGizmoPositions()
PartDesign::TopoShape shape = extrude->getProfileShape();
Base::Vector3d center = getMidPointFromProfile(shape);
std::string sideType = std::string(extrude->SideType.getValueAsString());
+ std::string extrudeType = std::string(extrude->Type.getValueAsString());
+ std::string extrudeType2 = std::string(extrude->Type2.getValueAsString());
double dir = extrude->Reversed.getValue()? -1 : 1;
lengthGizmo1->Gizmo::setDraggerPlacement(center, extrude->Direction.getValue() * dir);
+ lengthGizmo1->setVisibility(extrudeType == "Length");
taperAngleGizmo1->placeOverLinearGizmo(lengthGizmo1);
+ taperAngleGizmo1->setVisibility(extrudeType == "Length");
lengthGizmo2->Gizmo::setDraggerPlacement(center, -extrude->Direction.getValue() * dir);
lengthGizmo2->setVisibility(
- sideType == "Two sides"
+ sideType == "Two sides" && extrudeType2 == "Length"
);
taperAngleGizmo2->placeOverLinearGizmo(lengthGizmo2);
taperAngleGizmo2->setVisibility(
- sideType == "Two sides"
+ sideType == "Two sides" && extrudeType2 == "Length"
);
Base::Vector3d padDir = extrude->Direction.getValue().Normalized();
diff --git a/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp b/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp
index 0fb44a8267..1093cabe0e 100644
--- a/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp
+++ b/src/Mod/PartDesign/Gui/TaskHoleParameters.cpp
@@ -1250,6 +1250,8 @@ void TaskHoleParameters::setGizmoPositions()
holeDepthGizmo->setVisibility(
std::string(hole->DepthType.getValueAsString()) == "Dimension"
);
+
+ holeDepthGizmo->setDragLength(ui->Depth->rawValue());
}