Skip to content

Commit edcd058

Browse files
committedDec 21, 2017
[processing] Add a setParameters method to AlgorithmDialog
Allows pre-populating the dialog with non-default parameter values.
1 parent 595b981 commit edcd058

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed
 

‎python/plugins/processing/gui/AlgorithmDialog.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ def runAsBatch(self):
8080
dlg.show()
8181
dlg.exec_()
8282

83+
def setParameters(self, parameters):
84+
self.mainWidget().setParameters(parameters)
85+
8386
def getParameterValues(self):
8487
parameters = {}
8588

‎python/plugins/processing/gui/DestinationSelectionPanel.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,12 @@ def selectDirectory(self):
266266
self.leText.setText(QDir.toNativeSeparators(dirName))
267267
settings.setValue('/Processing/LastOutputPath', dirName)
268268

269+
def setValue(self, value):
270+
if value == 'memory:':
271+
self.saveToTemporary()
272+
else:
273+
self.leText.setText(value)
274+
269275
def getValue(self):
270276
key = None
271277
if self.use_temporary and isinstance(self.parameter, QgsProcessingParameterFeatureSink):

‎python/plugins/processing/gui/ParametersPanel.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,21 @@ def initWidgets(self):
181181
for wrapper in list(self.wrappers.values()):
182182
wrapper.postInitialize(list(self.wrappers.values()))
183183

184+
def setParameters(self, parameters):
185+
for param in self.alg.parameterDefinitions():
186+
if param.flags() & QgsProcessingParameterDefinition.FlagHidden:
187+
continue
188+
189+
if not param.name() in parameters:
190+
continue
191+
192+
if not param.isDestination():
193+
wrapper = self.wrappers[param.name()]
194+
wrapper.setValue(parameters[param.name()])
195+
else:
196+
dest_widget = self.outputWidgets[param.name()]
197+
dest_widget.setValue(parameters[param.name()])
198+
184199
def buttonToggled(self, value):
185200
if value:
186201
sender = self.sender()

0 commit comments

Comments
 (0)
Please sign in to comment.