diff --git a/src/Mod/Path/PathScripts/PathDressupAxisMap.py b/src/Mod/Path/PathScripts/PathDressupAxisMap.py index ffcbf4f0ae..472300a496 100644 --- a/src/Mod/Path/PathScripts/PathDressupAxisMap.py +++ b/src/Mod/Path/PathScripts/PathDressupAxisMap.py @@ -168,10 +168,12 @@ class ViewProviderDressup: 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 - FreeCADGui.ActiveDocument.getObject(arg1.Object.Base.Name).Visibility = True - job = PathUtils.findParentJob(arg1.Object) - job.Proxy.addOperation(arg1.Object.Base, arg1.Object) - arg1.Object.Base = None + if arg1.Object and arg1.Object.Base: + FreeCADGui.ActiveDocument.getObject(arg1.Object.Base.Name).Visibility = True + job = PathUtils.findParentJob(arg1.Object) + if job: + job.Proxy.addOperation(arg1.Object.Base, arg1.Object) + arg1.Object.Base = None return True class CommandPathDressup: diff --git a/src/Mod/Path/PathScripts/PathDressupDragknife.py b/src/Mod/Path/PathScripts/PathDressupDragknife.py index b1f0cb0039..927c07fc44 100644 --- a/src/Mod/Path/PathScripts/PathDressupDragknife.py +++ b/src/Mod/Path/PathScripts/PathDressupDragknife.py @@ -465,10 +465,12 @@ class ViewProviderDressup: def onDelete(self, arg1=None, arg2=None): # pylint: disable=unused-argument - FreeCADGui.ActiveDocument.getObject(arg1.Object.Base.Name).Visibility = True - job = PathUtils.findParentJob(arg1.Object.Base) - job.Proxy.addOperation(arg1.Object.Base, arg1.Object) - arg1.Object.Base = None + if arg1.Object and arg1.Object.Base: + FreeCADGui.ActiveDocument.getObject(arg1.Object.Base.Name).Visibility = True + job = PathUtils.findParentJob(arg1.Object.Base) + if job: + job.Proxy.addOperation(arg1.Object.Base, arg1.Object) + arg1.Object.Base = None return True diff --git a/src/Mod/Path/PathScripts/PathDressupLeadInOut.py b/src/Mod/Path/PathScripts/PathDressupLeadInOut.py index e3e3551765..4ab56d5b37 100644 --- a/src/Mod/Path/PathScripts/PathDressupLeadInOut.py +++ b/src/Mod/Path/PathScripts/PathDressupLeadInOut.py @@ -322,10 +322,12 @@ class ViewProviderDressup: '''this makes sure that the base operation is added back to the project and visible''' # pylint: disable=unused-argument PathLog.debug("Deleting Dressup") - FreeCADGui.ActiveDocument.getObject(arg1.Object.Base.Name).Visibility = True - job = PathUtils.findParentJob(self.obj) - job.Proxy.addOperation(arg1.Object.Base, arg1.Object) - arg1.Object.Base = None + if arg1.Object and arg1.Object.Base: + FreeCADGui.ActiveDocument.getObject(arg1.Object.Base.Name).Visibility = True + job = PathUtils.findParentJob(self.obj) + if job: + job.Proxy.addOperation(arg1.Object.Base, arg1.Object) + arg1.Object.Base = None return True def __getstate__(self): diff --git a/src/Mod/Path/PathScripts/PathDressupPathBoundary.py b/src/Mod/Path/PathScripts/PathDressupPathBoundary.py index f948aea975..34029fede8 100644 --- a/src/Mod/Path/PathScripts/PathDressupPathBoundary.py +++ b/src/Mod/Path/PathScripts/PathDressupPathBoundary.py @@ -66,7 +66,8 @@ class DressupPathBoundary(object): def onDelete(self, obj, args): if obj.Base: job = PathUtils.findParentJob(obj) - job.Proxy.addOperation(obj.Base, obj) + if job: + job.Proxy.addOperation(obj.Base, obj) if obj.Base.ViewObject: obj.Base.ViewObject.Visibility = True obj.Base = None diff --git a/src/Mod/Path/PathScripts/PathDressupPathBoundaryGui.py b/src/Mod/Path/PathScripts/PathDressupPathBoundaryGui.py index afa6fabcc7..072c567c63 100644 --- a/src/Mod/Path/PathScripts/PathDressupPathBoundaryGui.py +++ b/src/Mod/Path/PathScripts/PathDressupPathBoundaryGui.py @@ -191,7 +191,8 @@ class DressupPathBoundaryViewProvider(object): return [self.obj.Base, self.obj.Stock] def onDelete(self, vobj, args=None): - vobj.Object.Proxy.onDelete(vobj.Object, args) + if vobj.Object and vobj.Object.Proxy: + vobj.Object.Proxy.onDelete(vobj.Object, args) return True def setEdit(self, vobj, mode=0): diff --git a/src/Mod/Path/PathScripts/PathDressupRampEntry.py b/src/Mod/Path/PathScripts/PathDressupRampEntry.py index fa55135b2e..8360dae41b 100644 --- a/src/Mod/Path/PathScripts/PathDressupRampEntry.py +++ b/src/Mod/Path/PathScripts/PathDressupRampEntry.py @@ -654,10 +654,12 @@ class ViewProviderDressup: '''this makes sure that the base operation is added back to the project and visible''' # pylint: disable=unused-argument PathLog.debug("Deleting Dressup") - FreeCADGui.ActiveDocument.getObject(arg1.Object.Base.Name).Visibility = True - job = PathUtils.findParentJob(self.obj) - job.Proxy.addOperation(arg1.Object.Base, arg1.Object) - arg1.Object.Base = None + if arg1.Object and arg1.Object.Base: + FreeCADGui.ActiveDocument.getObject(arg1.Object.Base.Name).Visibility = True + job = PathUtils.findParentJob(self.obj) + if job: + job.Proxy.addOperation(arg1.Object.Base, arg1.Object) + arg1.Object.Base = None return True def __getstate__(self): diff --git a/src/Mod/Path/PathScripts/PathDressupTagGui.py b/src/Mod/Path/PathScripts/PathDressupTagGui.py index bc87bed323..9f24f1b9c7 100644 --- a/src/Mod/Path/PathScripts/PathDressupTagGui.py +++ b/src/Mod/Path/PathScripts/PathDressupTagGui.py @@ -422,8 +422,9 @@ class PathDressupTagViewProvider: if self.obj.Base.ViewObject: self.obj.Base.ViewObject.Visibility = True job = PathUtils.findParentJob(self.obj) - job.Proxy.addOperation(arg1.Object.Base, arg1.Object) - arg1.Object.Base = None + if arg1.Object and arg1.Object.Base and job: + job.Proxy.addOperation(arg1.Object.Base, arg1.Object) + arg1.Object.Base = None # if self.debugDisplay(): # self.vobj.Debug.removeObjectsFromDocument() # self.vobj.Debug.Document.removeObject(self.vobj.Debug.Name)