Added tool controller edit in dialog and hooked it up to job edit.

This commit is contained in:
Markus Lampert
2017-08-27 15:04:44 -07:00
committed by wmayer
parent 83ab3bd3f2
commit 3a392ec604
3 changed files with 38 additions and 6 deletions

View File

@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
<string>Tool Controller Editor</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>

View File

@@ -177,6 +177,9 @@ class TaskPanel:
widget.blockSignals(False)
def updateToolController(self):
tcRow = self.form.toolControllerList.currentRow()
tcCol = self.form.toolControllerList.currentColumn()
self.form.toolControllerList.blockSignals(True)
self.form.toolControllerList.clearContents()
self.form.toolControllerList.setRowCount(0)
@@ -224,6 +227,8 @@ class TaskPanel:
if index != -1:
self.form.activeToolController.setCurrentIndex(index)
if tcRow != -1 and tcCol != -1:
self.form.toolControllerList.setCurrentCell(tcRow, tcCol)
self.form.activeToolController.blockSignals(False)
self.form.toolControllerList.blockSignals(False)
@@ -302,7 +307,12 @@ class TaskPanel:
self.form.toolControllerDelete.setEnabled(delete)
def toolControllerEdit(self):
pass
for item in self.form.toolControllerList.selectedItems():
tc = item.data(self.DataObject)
dlg = PathToolController.DlgToolControllerEdit(tc)
dlg.exec_()
self.setFields()
self.toolControllerSelect()
def toolControllerAdd(self):
PathToolLibraryManager.CommandToolLibraryEdit().edit(self.obj, self.updateToolController)

View File

@@ -47,6 +47,7 @@ def translate(context, text, disambig=None):
class ToolControllerTemplate:
'''Attribute and sub element strings for template export/import.'''
Name = 'name'
Label = 'label'
ToolNumber = 'nr'
VertFeed = 'vfeed'
@@ -78,7 +79,9 @@ class ToolController:
def assignTemplate(self, obj, template):
'''assignTemplate(obj, xmlItem) ... extract properties from xmlItem and assign to receiver.'''
PathLog.track(obj.Label, template)
PathLog.track(obj.Name, template)
if template.get(ToolControllerTemplate.Label):
obj.Label = template.get(ToolControllerTemplate.Label)
if template.get(ToolControllerTemplate.VertFeed):
obj.VertFeed = template.get(ToolControllerTemplate.VertFeed)
if template.get(ToolControllerTemplate.HorizFeed):
@@ -102,6 +105,7 @@ class ToolController:
def templateAttrs(self, obj):
'''templateAttrs(obj) ... answer a dictionary with all properties that should be stored for a template.'''
attrs = {}
attrs[ToolControllerTemplate.Name] = ("%s" % (obj.Name))
attrs[ToolControllerTemplate.Label] = ("%s" % (obj.Label))
attrs[ToolControllerTemplate.ToolNumber] = ("%d" % (obj.ToolNumber))
attrs[ToolControllerTemplate.VertFeed] = ("%s" % (obj.VertFeed))
@@ -224,7 +228,8 @@ def Create(name = 'Default Tool', tool=None, toolNumber=1, assignViewProvider=Tr
def FromTemplate(template, assignViewProvider=True):
PathLog.track()
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", template.get(ToolControllerTemplate.Label))
name = template.get(ToolControllerTemplate.Name, ToolControllerTemplate.Label)
obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython", name)
tc = ToolController(obj)
if FreeCAD.GuiUp and assignViewProvider:
ViewProvider(obj.ViewObject)
@@ -285,7 +290,6 @@ class ToolControllerEditor:
return matslist[material]
def updateUi(self):
PathLog.info("updateUI")
tc = self.obj
self.form.tcName.setText(tc.Label)
self.form.tcNumber.setValue(tc.ToolNumber)
@@ -309,7 +313,6 @@ class ToolControllerEditor:
self.form.toolCuttingEdgeHeight.setText(FreeCAD.Units.Quantity(tc.Tool.CuttingEdgeHeight, FreeCAD.Units.Length).UserString)
def updateToolController(self):
PathLog.info("updateToolController")
tc = self.obj
try:
tc.Label = self.form.tcName.text()
@@ -412,6 +415,25 @@ class TaskPanel:
self.editor.setupUi()
class DlgToolControllerEdit:
def __init__(self, obj):
self.editor = ToolControllerEditor(obj, True)
self.editor.updateUi()
self.editor.setupUi()
self.obj = obj
def exec_(self):
restoreTC = self.obj.Proxy.templateAttrs(self.obj)
restoreTool = self.obj.Tool.Content
rc = False
if not self.editor.form.exec_():
PathLog.info("revert")
root = xml.Element('ToolController', restoreTC)
root.append(xml.fromstring(restoreTool))
self.obj.Proxy.assignTemplate(self.obj, root)
rc = True
return rc
if FreeCAD.GuiUp:
# register the FreeCAD command