Path: Add method, 'updatePanelVisibility()'

New method allows one panel to update visibility on another panel.
This commit is contained in:
Russell Johnson
2020-05-01 10:51:08 -05:00
parent 78735ddc06
commit 16cf71bb7d

View File

@@ -205,6 +205,7 @@ class TaskPanelPage(object):
self.features = features
self.isdirty = False
self.parent = None
self.panelTitle = 'Operation'
def setParent(self, parent):
'''setParent() ... used to transfer parent object link to child class.
@@ -393,11 +394,27 @@ class TaskPanelPage(object):
if obj.CoolantMode != option:
obj.CoolantMode = option
def updatePanelVisibility(self, panelTitle, obj):
if hasattr(self, 'parent'):
parent = getattr(self, 'parent')
if parent and hasattr(parent, 'featurePages'):
for page in parent.featurePages:
if hasattr(page, 'panelTitle'):
if page.panelTitle == panelTitle and hasattr(page, 'updateVisibility'):
page.updateVisibility(obj)
break
class TaskPanelBaseGeometryPage(TaskPanelPage):
'''Page controller for the base geometry.'''
DataObject = QtCore.Qt.ItemDataRole.UserRole
DataObjectSub = QtCore.Qt.ItemDataRole.UserRole + 1
def __init__(self, obj, features):
super(TaskPanelBaseGeometryPage, self).__init__(obj, features)
self.panelTitle = 'Base Geometry'
def getForm(self):
return FreeCADGui.PySideUic.loadUi(":/panels/PageBaseGeometryEdit.ui")
@@ -476,7 +493,6 @@ class TaskPanelBaseGeometryPage(TaskPanelPage):
return False
return True
def addBaseGeometry(self, selection):
PathLog.track(selection)
if self.selectionSupportedAsBaseGeometry(selection, False):
@@ -547,6 +563,7 @@ class TaskPanelBaseLocationPage(TaskPanelPage):
# members initialized later
self.editRow = None
self.panelTitle = 'Base Location'
def getForm(self):
self.formLoc = FreeCADGui.PySideUic.loadUi(":/panels/PageBaseLocationEdit.ui")
@@ -662,6 +679,7 @@ class TaskPanelHeightsPage(TaskPanelPage):
# members initialized later
self.clearanceHeight = None
self.safeHeight = None
self.panelTitle = 'Heights'
def getForm(self):
return FreeCADGui.PySideUic.loadUi(":/panels/PageHeightsEdit.ui")
@@ -703,6 +721,7 @@ class TaskPanelDepthsPage(TaskPanelPage):
self.finalDepth = None
self.finishDepth = None
self.stepDown = None
self.panelTitle = 'Depths'
def getForm(self):
return FreeCADGui.PySideUic.loadUi(":/panels/PageDepthsEdit.ui")