Add tool controller support with inplace editing.

This commit is contained in:
Markus Lampert
2017-08-26 14:08:16 -07:00
committed by wmayer
parent c0d1fa49a6
commit a440dabf5d
5 changed files with 204 additions and 64 deletions

View File

@@ -35,7 +35,7 @@ from PySide import QtCore
if True:
PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule())
PathLog.trackModule()
PathLog.trackModule(PathLog.thisModule())
else:
PathLog.setLevel(PathLog.Level.INFO, PathLog.thisModule())
@@ -94,6 +94,7 @@ class ObjectJob:
self.assignTemplate(obj, template)
def onDelete(self, obj, arg2=None):
PathLog.track(obj, arg2)
for tc in obj.ToolController:
FreeCAD.ActiveDocument.removeObject(tc.Name)
obj.ToolController = []
@@ -129,9 +130,9 @@ class ObjectJob:
if job.get(JobTemplate.Description):
obj.Description = job.get(JobTemplate.Description)
for tc in tree.getroot().iter(JobTemplate.ToolController):
tcs.append(PathToolController.CommandPathToolController.FromTemplate(tc))
tcs.append(PathToolController.FromTemplate(tc))
else:
tcs.append(PathToolController.CommandPathToolController.Create(obj.Name))
tcs.append(PathToolController.Create(obj.Name))
PathLog.debug("setting tool controllers (%d)" % len(tcs))
obj.ToolController = tcs
@@ -167,6 +168,14 @@ class ObjectJob:
group.append(op)
self.obj.Operations.Group = group
def addToolController(self, tc):
group = self.obj.ToolController
PathLog.info("addToolController(%s): %s" % (tc.Label, [t.Label for t in group]))
if tc.Name not in [str(t.Name) for t in group]:
group.append(tc)
self.obj.ToolController = group
@classmethod
def baseCandidates(cls):
'''Answer all objects in the current document which could serve as a Base for a job.'''