From 8e01827dabe6cbab0f2b7e92b6034d5a8ef82665 Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Fri, 21 Oct 2016 14:16:06 -0700 Subject: [PATCH] Path preferences for default post processor and arguments. --- src/Mod/Path/PathScripts/DlgSettingsPath.ui | 46 +++++++++++++++++++++ src/Mod/Path/PathScripts/PathJob.py | 16 ++++++- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/Mod/Path/PathScripts/DlgSettingsPath.ui b/src/Mod/Path/PathScripts/DlgSettingsPath.ui index a8d112f7d..6878e593a 100644 --- a/src/Mod/Path/PathScripts/DlgSettingsPath.ui +++ b/src/Mod/Path/PathScripts/DlgSettingsPath.ui @@ -52,6 +52,52 @@ + + + + Job Output + + + + + + Default Post Processor + + + + + + + Default Arguments + + + + + + + <html><head/><body><p>Optional arguments passed to the default Post Processor specified above. See the Post Processor's documentation for supported arguments.</p></body></html> + + + DefaultPostProcessorArgs + + + Mod/Path + + + + + + + DefaultPostProcessor + + + Mod/Path + + + + + + diff --git a/src/Mod/Path/PathScripts/PathJob.py b/src/Mod/Path/PathScripts/PathJob.py index 208a0f20c..98378be9c 100644 --- a/src/Mod/Path/PathScripts/PathJob.py +++ b/src/Mod/Path/PathScripts/PathJob.py @@ -68,6 +68,7 @@ class ObjectPathJob: obj.addProperty("App::PropertyString", "Description", "Path", QtCore.QT_TRANSLATE_NOOP("App::Property","An optional description for this job")) obj.addProperty("App::PropertyEnumeration", "PostProcessor", "Output", QtCore.QT_TRANSLATE_NOOP("App::Property","Select the Post Processor")) obj.PostProcessor = allposts + obj.PostProcessor obj.addProperty("App::PropertyString", "PostProcessorArgs", "Output", QtCore.QT_TRANSLATE_NOOP("App::Property", "Arguments for the Post Processor (specific to the script)")) obj.PostProcessorArgs = "" obj.addProperty("App::PropertyString", "MachineName", "Output", QtCore.QT_TRANSLATE_NOOP("App::Property","Name of the Machine that will use the CNC program")) @@ -89,6 +90,13 @@ class ObjectPathJob: obj.Proxy = self + preferences = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path") + defaultPostProcessor = preferences.GetString("DefaultPostProcessor", "") + print("DefaultPostProcessor = '%s'" % defaultPostProcessor) + if defaultPostProcessor: + obj.PostProcessor = defaultPostProcessor + obj.PostProcessorArgs = preferences.GetString("DefaultPostProcessorArgs", "") + if FreeCAD.GuiUp: ViewProviderJob(obj.ViewObject) @@ -132,6 +140,8 @@ class ObjectPathJob: if hasattr(current_post, "TOOLTIP_ARGS"): self.tooltipArgs = current_post.TOOLTIP_ARGS + self.PostProcessorArgs = '' + # def getToolControllers(self, obj): # '''returns a list of ToolControllers for the current job''' # controllers = [] @@ -274,11 +284,14 @@ class TaskPanel: 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) + self.form.cboPostProcessorArgs.setText(self.obj.PostProcessorArgs) else: self.form.cboPostProcessorArgs.setToolTip(self.postProcessorDefaultArgsTooltip) + self.form.cboPostProcessorArgs.setText('') else: self.form.cboPostProcessor.setToolTip(self.postProcessorDefaultTooltip) self.form.cboPostProcessorArgs.setToolTip(self.postProcessorDefaultArgsTooltip) + self.form.cboPostProcessorArgs.setText('') def getFields(self): '''sets properties in the object to match the form''' @@ -286,7 +299,7 @@ class TaskPanel: if hasattr(self.obj, "PostProcessor"): self.obj.PostProcessor = str(self.form.cboPostProcessor.currentText()) if hasattr(self.obj, "PostProcessorArgs"): - self.obj.PostProcessorArgs = str(self.form.cboPostProcessorArgs.displayText) + self.obj.PostProcessorArgs = str(self.form.cboPostProcessorArgs.displayText()) if hasattr(self.obj, "Label"): self.obj.Label = str(self.form.leLabel.text()) if hasattr(self.obj, "OutputFile"): @@ -327,7 +340,6 @@ class TaskPanel: # 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: self.form.PathsList.addItem(child.Name)