diff --git a/src/Mod/Path/PathScripts/PathJob.py b/src/Mod/Path/PathScripts/PathJob.py index ca84dfcf6..6405ebe0c 100644 --- a/src/Mod/Path/PathScripts/PathJob.py +++ b/src/Mod/Path/PathScripts/PathJob.py @@ -157,8 +157,7 @@ class ViewProviderJob: def setEdit(self, vobj, mode=0): FreeCADGui.Control.closeDialog() - taskd = TaskPanel() - taskd.obj = vobj.Object + taskd = TaskPanel(vobj.Object) FreeCADGui.Control.showDialog(taskd) taskd.setupUi() return True @@ -216,13 +215,18 @@ tl.ToolNumber = 1 class TaskPanel: - def __init__(self): + def __init__(self, obj): + self.obj = obj self.form = FreeCADGui.PySideUic.loadUi(":/panels/JobEdit.ui") #self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Path/JobEdit.ui") - for post in PathPreferences.allEnabledPostProcessors(['']): + currentPostProcessor = obj.PostProcessor + postProcessors = PathPreferences.allEnabledPostProcessors(['', currentPostProcessor]) + for post in postProcessors: self.form.cboPostProcessor.addItem(post) - self.updating = False + # update the enumeration values, just to make sure all selections are valid + self.obj.PostProcessor = postProcessors + self.obj.PostProcessor = currentPostProcessor self.form.cboBaseObject.addItem("") for o in FreeCAD.ActiveDocument.Objects: diff --git a/src/Mod/Path/PathScripts/PathPreferences.py b/src/Mod/Path/PathScripts/PathPreferences.py index 3bdf899e8..ab155ab2f 100644 --- a/src/Mod/Path/PathScripts/PathPreferences.py +++ b/src/Mod/Path/PathScripts/PathPreferences.py @@ -50,8 +50,9 @@ class PathPreferences: blacklist = cls.postProcessorBlacklist() enabled = [processor for processor in cls.allAvailablePostProcessors() if not processor in blacklist] if include: - include.extend(enabled) - return include + l = list(set(include + enabled)) + l.sort() + return l return enabled