Added tooltip processing to the job preferences page.

This commit is contained in:
ml 2016-10-23 16:20:06 -07:00 committed by wmayer
parent cfca656d66
commit a3c4903d9b
3 changed files with 42 additions and 13 deletions

View File

@ -70,6 +70,9 @@
</item>
<item row="1" column="1">
<widget class="QComboBox" name="defaultPostProcessor">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select one of the post processors as the default.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="prefEntry" stdset="0">
<string>DefaultPostProcessor</string>
</property>
@ -106,7 +109,14 @@
</widget>
</item>
<item row="0" column="1">
<widget class="QListWidget" name="postProcessorList"/>
<widget class="QListWidget" name="postProcessorList">
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;It doesn't seem there are any post processor scripts installed. Pleas add some into your macro directory and make sure the file name ends with &amp;quot;_post.py&amp;quot;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</widget>

View File

@ -34,10 +34,9 @@ class Page:
self.postProcessorDefaultTooltip = self.form.defaultPostProcessor.toolTip()
self.postProcessorArgsDefaultTooltip = self.form.defaultPostProcessorArgs.toolTip()
self.tooltip = { }
self.processor = { }
def saveSettings(self):
print("saveSettings")
processor = str(self.form.defaultPostProcessor.currentText())
args = str(self.form.defaultPostProcessorArgs.text())
blacklist = []
@ -48,7 +47,6 @@ class Page:
PostProcessor.saveDefaults(processor, args, blacklist)
def loadSettings(self):
print("loadSettings")
self.form.defaultPostProcessor.addItem("")
blacklist = PostProcessor.blacklist()
for processor in PostProcessor.all():
@ -71,12 +69,34 @@ class Page:
self.form.defaultPostProcessorArgs.setText(PostProcessor.defaultArgs())
self.form.postProcessorList.itemEntered.connect(self.setProcessorListTooltip)
self.form.defaultPostProcessor.currentIndexChanged.connect(self.updateDefaultPostProcessorToolTip)
def getPostProcessor(self, name):
if not name in self.processor.keys():
processor = PostProcessor.load(name)
self.processor[name] = processor
return processor
return self.processor[name]
def setPostProcessorTooltip(self, widget, name, default):
processor = self.getPostProcessor(name)
if processor.tooltip:
widget.setToolTip(processor.tooltip)
else:
widget.setToolTip(default)
def setProcessorListTooltip(self, item):
if not item.text() in self.tooltip.keys():
processor = PostProcessor.load(item.text())
if processor.tooltip:
self.form.postProcessorList.setToolTip(processor.tooltip)
else:
self.form.postProcessorList.setToolTip('')
self.setPostProcessorTooltip(self.form.postProcessorList, item.text(), '')
def updateDefaultPostProcessorToolTip(self):
name = str(self.form.defaultPostProcessor.currentText())
if name:
self.setPostProcessorTooltip(self.form.defaultPostProcessor, name, self.postProcessorDefaultTooltip)
processor = self.getPostProcessor(name)
if processor.tooltipArgs:
self.form.defaultPostProcessorArgs.setToolTip(processor.tooltipArgs)
else:
self.form.defaultPostProcessorArgs.setToolTip(self.postProcessorArgsDefaultTooltip)
else:
self.form.defaultPostProcessor.setToolTip(self.postProcessorDefaultTooltip)
self.form.defaultPostProcessorArgs.setToolTip(self.postProcessorArgsDefaultTooltip)

View File

@ -26,7 +26,6 @@ TOOLTIP=''' example post for Centroid CNC mill'''
import FreeCAD
import datetime
now = datetime.datetime.now()
originfile = FreeCAD.ActiveDocument.FileName
import Path, PathScripts
from PathScripts import PostUtils
@ -46,7 +45,7 @@ COMMENT= ';' #centroid control comment symbol
HEADER = ""
HEADER += ";Exported by FreeCAD\n"
HEADER += ";Post Processor: " + __name__ +"\n"
HEADER += ";CAM file: "+originfile+"\n"
HEADER += ";CAM file: %s\n"
HEADER += ";Output Time:"+str(now)+"\n"
TOOLRETURN = '''M5 M25
@ -89,7 +88,7 @@ def export(selection,filename,argstring):
print "No machine found in this selection"
gcode =''
gcode+= HEADER
gcode+= HEADER % (FreeCAD.ActiveDocument.FileName)
gcode+= SAFETYBLOCK
gcode+= UNITS+'\n'