[Path] Make jobs delete cleanly.

Deletion of tool controllers now works for toolbits as well
This commit is contained in:
sliptonic
2020-06-19 13:17:17 -05:00
parent c9418a7597
commit 48b0c71c20
2 changed files with 9 additions and 4 deletions

View File

@@ -223,13 +223,17 @@ class ObjectJob:
doc.removeObject(obj.Model.Name)
obj.Model = None
# Tool controllers don't depend on anything
# Tool controllers might refer to either legacy tool or toolbit
PathLog.debug('taking down tool controller')
for tc in obj.ToolController:
if hasattr(tc.Tool,"Proxy"):
PathUtil.clearExpressionEngine(tc.Tool)
doc.removeObject(tc.Tool.Name)
PathUtil.clearExpressionEngine(tc)
tc.Proxy.onDelete(tc)
doc.removeObject(tc.Name)
obj.ToolController = []
# SetupSheet
PathUtil.clearExpressionEngine(obj.SetupSheet)
doc.removeObject(obj.SetupSheet.Name)
@@ -351,8 +355,9 @@ class ObjectJob:
return None
def execute(self, obj):
obj.Path = obj.Operations.Path
self.getCycleTime()
if hasattr(obj, 'Operations'):
obj.Path = obj.Operations.Path
self.getCycleTime()
def getCycleTime(self):
seconds = 0

View File

@@ -80,7 +80,7 @@ class ToolController:
def onDelete(self, obj, arg2=None):
# pylint: disable=unused-argument
if not self.usesLegacyTool(obj):
if len(obj.Tool.InList) == 1:
if hasattr(obj.Tool, 'InList') and len(obj.Tool.InList) == 1:
if hasattr(obj.Tool.Proxy, 'onDelete'):
obj.Tool.Proxy.onDelete(obj.Tool)
obj.Document.removeObject(obj.Tool.Name)