diff --git a/src/Mod/Path/Gui/Resources/preferences/PathJob.ui b/src/Mod/Path/Gui/Resources/preferences/PathJob.ui
index f7ab52128..17e82cab4 100644
--- a/src/Mod/Path/Gui/Resources/preferences/PathJob.ui
+++ b/src/Mod/Path/Gui/Resources/preferences/PathJob.ui
@@ -70,6 +70,9 @@
-
+
+ <html><head/><body><p>Select one of the post processors as the default.</p></body></html>
+
DefaultPostProcessor
@@ -106,7 +109,14 @@
-
-
+
+
+ true
+
+
+ <html><head/><body><p>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 "_post.py".</p></body></html>
+
+
diff --git a/src/Mod/Path/PathScripts/PathPreferencesPathJob.py b/src/Mod/Path/PathScripts/PathPreferencesPathJob.py
index fd423c4dc..d9581de29 100644
--- a/src/Mod/Path/PathScripts/PathPreferencesPathJob.py
+++ b/src/Mod/Path/PathScripts/PathPreferencesPathJob.py
@@ -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)
diff --git a/src/Mod/Path/PathScripts/centroid_post.py b/src/Mod/Path/PathScripts/centroid_post.py
index f95ca1a69..dbae475d9 100644
--- a/src/Mod/Path/PathScripts/centroid_post.py
+++ b/src/Mod/Path/PathScripts/centroid_post.py
@@ -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'