Workaround for DAG invalidation - remove all expressions before deleting an object.

This commit is contained in:
Markus Lampert
2017-10-10 17:12:05 -07:00
parent d2b1768e18
commit 46d120071e
4 changed files with 26 additions and 0 deletions

View File

@@ -30,6 +30,7 @@ import PathScripts.PathGui as PathGui
import PathScripts.PathLog as PathLog
import PathScripts.PathSelection as PathSelection
import PathScripts.PathOp as PathOp
import PathScripts.PathUtil as PathUtil
import PathScripts.PathUtils as PathUtils
import importlib
@@ -161,6 +162,10 @@ class ViewProvider(object):
if self.panel:
self.panel.updateData(obj, prop)
def onDelete(self, vobj, arg2=None):
PathUtil.clearExpressionEngine(vobj.Object)
return True
class TaskPanelPage(object):
'''Base class for all task panel pages.'''
@@ -767,6 +772,7 @@ class TaskPanel(object):
FreeCAD.ActiveDocument.abortTransaction()
if self.deleteOnReject:
FreeCAD.ActiveDocument.openTransaction(translate("Path", "Uncreate AreaOp Operation"))
PathUtil.clearExpressionEngine(self.obj)
FreeCAD.ActiveDocument.removeObject(self.obj.Name)
FreeCAD.ActiveDocument.commitTransaction()
self.cleanup(resetEdit)