Cleanup so artifacts on task panel close.
This commit is contained in:
@@ -223,6 +223,11 @@ class TaskPanelPage(object):
|
||||
Do not overwrite, implement setFields(obj) instead.'''
|
||||
self.setFields(self.obj)
|
||||
|
||||
def pageCleanup(self):
|
||||
'''pageCleanup() ... internal callback.
|
||||
Do not overwrite, implement cleanupPage(obj) instead.'''
|
||||
self.cleanupPage(self.obj)
|
||||
|
||||
def pageRegisterSignalHandlers(self):
|
||||
'''pageRegisterSignalHandlers() .. internal callback.
|
||||
Registers a callback for all signals returned by getSignalsForUpdate(obj).
|
||||
@@ -262,6 +267,11 @@ class TaskPanelPage(object):
|
||||
Should be overwritten by subclasses.'''
|
||||
pass
|
||||
|
||||
def cleanupPage(self, obj):
|
||||
'''cleanupPage(obj) ... overwrite to perform any cleanup tasks before page is destroyed.
|
||||
Can safely be overwritten by subclasses.'''
|
||||
pass
|
||||
|
||||
def modifyStandardButtons(self, buttonBox):
|
||||
'''modifyStandardButtons(buttonBox) ... overwrite if the task panel standard buttons need to be modified.
|
||||
Can safely be overwritten by subclasses.'''
|
||||
@@ -878,6 +888,7 @@ class TaskPanel(object):
|
||||
|
||||
def cleanup(self, resetEdit):
|
||||
'''cleanup() ... implements common cleanup tasks.'''
|
||||
self.panelCleanup()
|
||||
FreeCADGui.Control.closeDialog()
|
||||
if resetEdit:
|
||||
FreeCADGui.ActiveDocument.resetEdit()
|
||||
@@ -913,6 +924,12 @@ class TaskPanel(object):
|
||||
for page in self.featurePages:
|
||||
page.pageSetFields()
|
||||
|
||||
def panelCleanup(self):
|
||||
'''panelCleanup() ... invoked before the receiver is destroyed.'''
|
||||
PathLog.track()
|
||||
for page in self.featurePages:
|
||||
page.pageCleanup()
|
||||
|
||||
def open(self):
|
||||
'''open() ... callback invoked when the task panel is opened.'''
|
||||
self.selectionFactory()
|
||||
|
||||
@@ -112,6 +112,9 @@ class TaskPanelExtensionPage(PathOpGui.TaskPanelPage):
|
||||
self.obj.ViewObject.RootNode.addChild(self.switch)
|
||||
self.switch.whichChild = coin.SO_SWITCH_ALL
|
||||
|
||||
def cleanupPage(self, obj):
|
||||
self.obj.ViewObject.RootNode.removeChild(self.switch)
|
||||
|
||||
def enable(self, ena):
|
||||
if ena != self.enabled:
|
||||
self.enabled = ena
|
||||
|
||||
Reference in New Issue
Block a user