Added tooltip support for PostProcessor scripts.

This commit is contained in:
Markus Lampert
2016-10-20 16:26:41 -07:00
committed by wmayer
parent 70b445a099
commit bf4783235b
8 changed files with 41 additions and 7 deletions

View File

@@ -125,6 +125,13 @@ class ObjectPathJob:
obj.Y_Min = current_post.CORNER_MIN['y']
obj.Z_Min = current_post.CORNER_MIN['z']
self.tooltip = None
self.tooltipArgs = None
if hasattr(current_post, "TOOLTIP"):
self.tooltip = current_post.TOOLTIP
if hasattr(current_post, "TOOLTIP_ARGS"):
self.tooltipArgs = current_post.TOOLTIP_ARGS
# def getToolControllers(self, obj):
# '''returns a list of ToolControllers for the current job'''
# controllers = []
@@ -249,6 +256,8 @@ class TaskPanel:
if hasattr(o, "Shape"):
self.form.cboBaseObject.addItem(o.Name)
self.postProcessorDefaultTooltip = self.form.cboPostProcessor.toolTip()
self.postProcessorDefaultArgsTooltip = self.form.cboPostProcessorArgs.toolTip()
def accept(self):
self.getFields()
@@ -260,6 +269,17 @@ class TaskPanel:
FreeCADGui.Control.closeDialog()
FreeCAD.ActiveDocument.recompute()
def updateTooltips(self):
if hasattr(self.obj, "Proxy") and hasattr(self.obj.Proxy, "tooltip") and self.obj.Proxy.tooltip:
self.form.cboPostProcessor.setToolTip(self.obj.Proxy.tooltip)
if hasattr(self.obj.Proxy, "tooltipArgs") and self.obj.Proxy.tooltipArgs:
self.form.cboPostProcessorArgs.setToolTip(self.obj.Proxy.tooltipArgs)
else:
self.form.cboPostProcessorArgs.setToolTip(self.postProcessorDefaultArgsTooltip)
else:
self.form.cboPostProcessor.setToolTip(self.postProcessorDefaultTooltip)
self.form.cboPostProcessorArgs.setToolTip(self.postProcessorDefaultArgsTooltip)
def getFields(self):
'''sets properties in the object to match the form'''
if self.obj:
@@ -288,6 +308,8 @@ class TaskPanel:
selObj = Draft.clone(selObj)
self.obj.Base = selObj
self.updateTooltips()
self.obj.Proxy.execute(self.obj)
def setFields(self):
@@ -302,6 +324,9 @@ class TaskPanel:
self.form.cboPostProcessor.blockSignals(True)
self.form.cboPostProcessor.setCurrentIndex(postindex)
self.form.cboPostProcessor.blockSignals(False)
# make sure the proxy loads post processor script values and settings
self.obj.Proxy.onChanged(self.obj, "PostProcessor")
self.updateTooltips()
self.form.cboPostProcessorArgs.displayText = self.obj.PostProcessorArgs
for child in self.obj.Group: