Skip to content

Commit

Permalink
[processing] Add a setParameters method to AlgorithmDialog
Browse files Browse the repository at this point in the history
Allows pre-populating the dialog with non-default parameter
values.
  • Loading branch information
nyalldawson committed Dec 21, 2017
1 parent 595b981 commit edcd058
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
3 changes: 3 additions & 0 deletions python/plugins/processing/gui/AlgorithmDialog.py
Expand Up @@ -80,6 +80,9 @@ def runAsBatch(self):
dlg.show()
dlg.exec_()

def setParameters(self, parameters):
self.mainWidget().setParameters(parameters)

def getParameterValues(self):
parameters = {}

Expand Down
6 changes: 6 additions & 0 deletions python/plugins/processing/gui/DestinationSelectionPanel.py
Expand Up @@ -266,6 +266,12 @@ def selectDirectory(self):
self.leText.setText(QDir.toNativeSeparators(dirName))
settings.setValue('/Processing/LastOutputPath', dirName)

def setValue(self, value):
if value == 'memory:':
self.saveToTemporary()
else:
self.leText.setText(value)

def getValue(self):
key = None
if self.use_temporary and isinstance(self.parameter, QgsProcessingParameterFeatureSink):
Expand Down
15 changes: 15 additions & 0 deletions python/plugins/processing/gui/ParametersPanel.py
Expand Up @@ -181,6 +181,21 @@ def initWidgets(self):
for wrapper in list(self.wrappers.values()):
wrapper.postInitialize(list(self.wrappers.values()))

def setParameters(self, parameters):
for param in self.alg.parameterDefinitions():
if param.flags() & QgsProcessingParameterDefinition.FlagHidden:
continue

if not param.name() in parameters:
continue

if not param.isDestination():
wrapper = self.wrappers[param.name()]
wrapper.setValue(parameters[param.name()])
else:
dest_widget = self.outputWidgets[param.name()]
dest_widget.setValue(parameters[param.name()])

def buttonToggled(self, value):
if value:
sender = self.sender()
Expand Down

0 comments on commit edcd058

Please sign in to comment.