Skip to content

Commit 94530a9

Browse files
committedSep 22, 2017
Allow setting default value for field parameters in models
1 parent 9caa722 commit 94530a9

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed
 

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

100644100755
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1269,6 +1269,8 @@ def createWidget(self):
12691269
widget.addItem(self.NOT_SET, None)
12701270
for f in fields:
12711271
widget.addItem(self.dialog.resolveValueDescription(f), f)
1272+
widget.setToolTip(
1273+
self.tr('Input parameter, or name of field (separate field names with ; for multiple field parameters)'))
12721274
return widget
12731275

12741276
def postInitialize(self, wrappers):
@@ -1297,6 +1299,8 @@ def refreshItems(self):
12971299
else:
12981300
self.widget.setLayer(self._layer)
12991301
self.widget.setCurrentIndex(0)
1302+
if self.param.defaultValue() is not None:
1303+
self.setValue(self.param.defaultValue())
13001304

13011305
def getFields(self):
13021306
if self._layer is None:
@@ -1322,7 +1326,7 @@ def setValue(self, value):
13221326
options = self.widget.options
13231327
selected = []
13241328
for i, opt in enumerate(options):
1325-
if opt in value:
1329+
if opt in value or opt==value:
13261330
selected.append(i)
13271331
self.widget.setSelectedItems(selected)
13281332
else:

‎python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py

100644100755
Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,16 @@ def setupUi(self):
173173
if self.param is not None:
174174
self.multipleCheck.setChecked(self.param.allowMultiple())
175175
self.verticalLayout.addWidget(self.multipleCheck)
176+
177+
self.verticalLayout.addWidget(QLabel(self.tr('Default value')))
178+
self.defaultTextBox = QLineEdit()
179+
self.defaultTextBox.setToolTip(self.tr('Default field name, or ; separated list of field names for multiple field parameters'))
180+
if self.param is not None:
181+
default = self.param.defaultValue()
182+
if default is not None:
183+
self.defaultTextBox.setText(str(default))
184+
self.verticalLayout.addWidget(self.defaultTextBox)
185+
176186
elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BAND or \
177187
isinstance(self.param, QgsProcessingParameterBand):
178188
self.verticalLayout.addWidget(QLabel(self.tr('Parent layer')))
@@ -339,7 +349,10 @@ def accept(self):
339349
return
340350
parent = self.parentCombo.currentData()
341351
datatype = self.datatypeCombo.currentData()
342-
self.param = QgsProcessingParameterField(name, description, None, parent, datatype, self.multipleCheck.isChecked())
352+
default = self.defaultTextBox.text()
353+
if not default:
354+
default = None
355+
self.param = QgsProcessingParameterField(name, description, defaultValue=default, parentLayerParameterName=parent, type=datatype, allowMultiple=self.multipleCheck.isChecked())
343356
elif (self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BAND or
344357
isinstance(self.param, QgsProcessingParameterBand)):
345358
if self.parentCombo.currentIndex() < 0:

0 commit comments

Comments
 (0)
Please sign in to comment.