diff --git a/src/Mod/Path/Gui/Resources/Path.qrc b/src/Mod/Path/Gui/Resources/Path.qrc
index c1383eb7a5..c99246c667 100644
--- a/src/Mod/Path/Gui/Resources/Path.qrc
+++ b/src/Mod/Path/Gui/Resources/Path.qrc
@@ -97,6 +97,7 @@
panels/DogboneEdit.ui
panels/DressupPathBoundary.ui
panels/DragKnifeEdit.ui
+ panels/DressUpLeadInOutEdit.ui
panels/HoldingTagsEdit.ui
panels/PageBaseGeometryEdit.ui
panels/PageBaseHoleGeometryEdit.ui
diff --git a/src/Mod/Path/Gui/Resources/panels/DressUpLeadInOutEdit.ui b/src/Mod/Path/Gui/Resources/panels/DressUpLeadInOutEdit.ui
new file mode 100644
index 0000000000..e7d1e9329f
--- /dev/null
+++ b/src/Mod/Path/Gui/Resources/panels/DressUpLeadInOutEdit.ui
@@ -0,0 +1,340 @@
+
+
+ TaskPanel
+
+
+
+ 0
+ 0
+ 372
+ 518
+
+
+
+ LeadInOut
+
+
+ -
+
+
+
+ 0
+ 400
+
+
+
+ QFrame::NoFrame
+
+
+ 0
+
+
+ 6
+
+
+
+
+ 0
+ 0
+ 354
+ 470
+
+
+
+ Dressup
+
+
+
+
+ 0
+ 0
+ 351
+ 391
+
+
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
-
+
+
-
+
+
+ <html><head/><body><p>Apply Lead In/Out on all layers</p></body></html>
+
+
+ Include Layers
+
+
+
+ -
+
+
+ Use Machine CRC
+
+
+
+
+
+ -
+
+
-
+
+
+ Extend In:
+
+
+
+ -
+
+
+
+ 80
+ 0
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+ Extend Out:
+
+
+
+ -
+
+
+
+ 80
+ 0
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Enable LeadIn
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+ Enable LeadOut
+
+
+
+
+
+ -
+
+
-
+
+
+ Length / Radius:
+
+
+
+ -
+
+
+
+ 80
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Style In:
+
+
+
+ -
+
+
+
+ 80
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
-
+
+ Arc
+
+
+ -
+
+ Tangent
+
+
+ -
+
+ Perpendicular
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+ Style Out:
+
+
+
+ -
+
+
+
+ 80
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
-
+
+ Arc
+
+
+ -
+
+ Tangent
+
+
+ -
+
+ Perpendicular
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Keep Tool Down
+
+
+
+ -
+
+
+ Rapid Plunge
+
+
+
+
+
+ -
+
+
-
+
+
+ Radius / Center:
+
+
+
+ -
+
+
+
+ 80
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
-
+
+ Radius
+
+
+ -
+
+ Center
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Mod/Path/PathScripts/PathDressupDogbone.py b/src/Mod/Path/PathScripts/PathDressupDogbone.py
index 25d0fdabc7..ce134a23c3 100644
--- a/src/Mod/Path/PathScripts/PathDressupDogbone.py
+++ b/src/Mod/Path/PathScripts/PathDressupDogbone.py
@@ -1108,6 +1108,7 @@ class CommandDressupDogbone:
FreeCAD.ActiveDocument.commitTransaction()
FreeCAD.ActiveDocument.recompute()
+
if FreeCAD.GuiUp:
import FreeCADGui
from PySide import QtGui
diff --git a/src/Mod/Path/PathScripts/PathDressupLeadInOut.py b/src/Mod/Path/PathScripts/PathDressupLeadInOut.py
index 6f7c161db1..261531835c 100644
--- a/src/Mod/Path/PathScripts/PathDressupLeadInOut.py
+++ b/src/Mod/Path/PathScripts/PathDressupLeadInOut.py
@@ -463,6 +463,81 @@ class ObjectDressup:
commands = newpath
return Path.Path(commands)
+
+class TaskPanel:
+ def __init__(self, obj):
+ self.obj = obj
+ self.form = FreeCADGui.PySideUic.loadUi(":/panels/DressUpLeadInOutEdit.ui")
+
+ FreeCAD.ActiveDocument.openTransaction(translate("Path_DressupLeadInOut", "Edit LeadInOut Dress-up"))
+
+ def reject(self):
+ FreeCAD.ActiveDocument.abortTransaction()
+ FreeCADGui.Control.closeDialog()
+ FreeCAD.ActiveDocument.recompute()
+
+ def accept(self):
+ self.getFields()
+ FreeCAD.ActiveDocument.commitTransaction()
+ FreeCADGui.ActiveDocument.resetEdit()
+ FreeCADGui.Control.closeDialog()
+ FreeCAD.ActiveDocument.recompute()
+
+ def getFields(self):
+ self.obj.LeadIn = self.form.chkLeadIn.isChecked()
+ self.obj.LeadOut = self.form.chkLeadOut.isChecked()
+ self.obj.Length = self.form.dsbLen.value()
+ self.obj.ExtendLeadIn = self.form.dsbExtendIn.value()
+ self.obj.ExtendLeadOut = self.form.dsbExtendOut.value()
+ self.obj.StyleOn = str(self.form.cboStyleIn.currentText())
+ self.obj.StyleOff = str(self.form.cboStyleOut.currentText())
+ self.obj.RadiusCenter = str(self.form.cboRadius.currentText())
+ self.obj.RapidPlunge = self.form.chkRapidPlunge.isChecked()
+ self.obj.IncludeLayers = self.form.chkLayers.isChecked()
+ self.obj.KeepToolDown = self.form.chkKeepToolDown.isChecked()
+ self.obj.UseMachineCRC = self.form.chkUseCRC.isChecked()
+
+ self.updateUI()
+ self.obj.Proxy.execute(self.obj)
+
+ def updateUI(self):
+ self.form.chkLeadIn.setChecked(self.obj.LeadIn)
+ self.form.chkLeadOut.setChecked(self.obj.LeadOut)
+ self.form.chkRapidPlunge.setChecked(self.obj.RapidPlunge)
+ self.form.chkLayers.setChecked(self.obj.IncludeLayers)
+ self.form.chkKeepToolDown.setChecked(self.obj.KeepToolDown)
+ self.form.chkUseCRC.setChecked(self.obj.UseMachineCRC)
+
+ self.form.dsbLen.setValue(self.obj.Length)
+
+ self.form.dsbExtendIn.setValue(self.obj.ExtendLeadIn)
+ #self.form.dsbExtendIn.setEnabled(self.obj.LeadIn)
+
+ self.form.dsbExtendOut.setValue(self.obj.ExtendLeadOut)
+ #self.form.dsbExtendOut.setEnabled(self.obj.LeadOut)
+
+ self.form.cboStyleIn.setCurrentIndex(self.form.cboStyleIn.findText(self.obj.StyleOn))
+ #self.form.cboStyleIn.setEnabled(self.obj.LeadIn)
+
+ self.form.cboStyleOut.setCurrentIndex(self.form.cboStyleIn.findText(self.obj.StyleOff))
+ #self.form.cboStyleOut.setEnabled(self.obj.LeadOut)
+
+ self.form.cboRadius.setCurrentIndex(self.form.cboRadius.findText(self.obj.RadiusCenter))
+
+ def updateModel(self):
+ self.getFields()
+ FreeCAD.ActiveDocument.recompute()
+
+ def setFields(self):
+ self.updateUI()
+
+ def open(self):
+ pass
+
+ def setupUi(self):
+ self.setFields()
+
+
class ViewProviderDressup:
def __init__(self, vobj):
@@ -484,6 +559,14 @@ class ViewProviderDressup:
# FreeCADGui.ActiveDocument.getObject(obj.Base.Name).Visibility = False
return [self.obj.Base]
+ def setEdit(self, vobj, mode=0):
+ # pylint: disable=unused-argument
+ FreeCADGui.Control.closeDialog()
+ panel = TaskPanel(vobj.Object)
+ FreeCADGui.Control.showDialog(panel)
+ panel.setupUi()
+ return True
+
def onDelete(self, arg1=None, arg2=None):
'''this makes sure that the base operation is added back to the project and visible'''
# pylint: disable=unused-argument
@@ -519,7 +602,6 @@ class CommandPathDressupLeadInOut:
return False
def Activated(self):
-
# check that the selection contains exactly what we want
selection = FreeCADGui.Selection.getSelection()
if len(selection) != 1: