From 1fb504e2bdac758111a1650f17509ad2ec8cda6e Mon Sep 17 00:00:00 2001 From: Markus Lampert Date: Mon, 31 Oct 2016 14:41:06 -0700 Subject: [PATCH] On PathJob creation pre-select the currently selected object. --- src/Mod/Path/PathScripts/PathJob.py | 14 ++++++---- .../PathScripts/PathPreferencesPathJob.py | 26 ++++++++++++++++--- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathJob.py b/src/Mod/Path/PathScripts/PathJob.py index 6405ebe0c..e5f77e307 100644 --- a/src/Mod/Path/PathScripts/PathJob.py +++ b/src/Mod/Path/PathScripts/PathJob.py @@ -233,6 +233,7 @@ class TaskPanel: if hasattr(o, "Shape"): self.form.cboBaseObject.addItem(o.Name) + self.postProcessorDefaultTooltip = self.form.cboPostProcessor.toolTip() self.postProcessorArgsDefaultTooltip = self.form.cboPostProcessorArgs.toolTip() @@ -308,13 +309,16 @@ class TaskPanel: for child in self.obj.Group: self.form.PathsList.addItem(child.Name) + baseindex = -1 if self.obj.Base is not None: baseindex = self.form.cboBaseObject.findText(self.obj.Base.Name, QtCore.Qt.MatchFixedString) - print baseindex - if baseindex >= 0: - self.form.cboBaseObject.blockSignals(True) - self.form.cboBaseObject.setCurrentIndex(baseindex) - self.form.cboBaseObject.blockSignals(False) + for o in FreeCADGui.Selection.getCompleteSelection(): + baseindex = self.form.cboBaseObject.findText(o.Name, QtCore.Qt.MatchFixedString) + print baseindex + if baseindex >= 0: + self.form.cboBaseObject.blockSignals(True) + self.form.cboBaseObject.setCurrentIndex(baseindex) + self.form.cboBaseObject.blockSignals(False) def open(self): diff --git a/src/Mod/Path/PathScripts/PathPreferencesPathJob.py b/src/Mod/Path/PathScripts/PathPreferencesPathJob.py index b5a0e4389..25e12f28a 100644 --- a/src/Mod/Path/PathScripts/PathPreferencesPathJob.py +++ b/src/Mod/Path/PathScripts/PathPreferencesPathJob.py @@ -58,11 +58,30 @@ class Page: widget.setCurrentIndex(index) widget.blockSignals(False) - def loadSettings(self): + def verifyAndUpdateDefaultPostProcessorWith(self, processor): + defaultIsValid = False + self.form.defaultPostProcessor.blockSignals(True) + self.form.defaultPostProcessor.clear() self.form.defaultPostProcessor.addItem("") + for i in range(0, self.form.postProcessorList.count()): + item = self.form.postProcessorList.item(i) + if item.checkState() == QtCore.Qt.CheckState.Checked: + self.form.defaultPostProcessor.addItem(item.text()) + if item.text() == processor : + defaultIsValid = True + # if we get here the default processor was disabled + if not defaultIsValid: + self.form.defaultPostProcessorArgs.setText('') + processor = '' + self.selectComboEntry(self.form.defaultPostProcessor, processor) + self.form.defaultPostProcessor.blockSignals(False) + + def verifyAndUpdateDefaultPostProcessor(self): + self.verifyAndUpdateDefaultPostProcessorWith(str(self.form.defaultPostProcessor.currentText())) + + def loadSettings(self): blacklist = PathPreferences.postProcessorBlacklist() for processor in PathPreferences.allAvailablePostProcessors(): - self.form.defaultPostProcessor.addItem(processor) item = QtGui.QListWidgetItem(processor) if processor in blacklist: item.setCheckState(QtCore.Qt.CheckState.Unchecked) @@ -70,13 +89,14 @@ class Page: item.setCheckState(QtCore.Qt.CheckState.Checked) item.setFlags( QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled | QtCore.Qt.ItemFlag.ItemIsUserCheckable) self.form.postProcessorList.addItem(item) - self.selectComboEntry(self.form.defaultPostProcessor, PathPreferences.defaultPostProcessor()) + self.verifyAndUpdateDefaultPostProcessorWith(PathPreferences.defaultPostProcessor()) self.form.defaultPostProcessorArgs.setText(PathPreferences.defaultPostProcessorArgs()) self.form.leOutputFile.setText(PathPreferences.defaultOutputFile()) self.selectComboEntry(self.form.cboOutputPolicy, PathPreferences.defaultOutputPolicy()) self.form.postProcessorList.itemEntered.connect(self.setProcessorListTooltip) + self.form.postProcessorList.itemChanged.connect(self.verifyAndUpdateDefaultPostProcessor) self.form.defaultPostProcessor.currentIndexChanged.connect(self.updateDefaultPostProcessorToolTip) self.form.pbBrowseFileSystem.clicked.connect(self.browseFileSystem)