diff --git a/python/plugins/processing/gui/wrappers.py b/python/plugins/processing/gui/wrappers.py old mode 100644 new mode 100755 index 05b31c3cd5c..18c0001ef37 --- a/python/plugins/processing/gui/wrappers.py +++ b/python/plugins/processing/gui/wrappers.py @@ -1269,6 +1269,8 @@ class TableFieldWidgetWrapper(WidgetWrapper): widget.addItem(self.NOT_SET, None) for f in fields: widget.addItem(self.dialog.resolveValueDescription(f), f) + widget.setToolTip( + self.tr('Input parameter, or name of field (separate field names with ; for multiple field parameters)')) return widget def postInitialize(self, wrappers): @@ -1297,6 +1299,8 @@ class TableFieldWidgetWrapper(WidgetWrapper): else: self.widget.setLayer(self._layer) self.widget.setCurrentIndex(0) + if self.param.defaultValue() is not None: + self.setValue(self.param.defaultValue()) def getFields(self): if self._layer is None: @@ -1322,7 +1326,7 @@ class TableFieldWidgetWrapper(WidgetWrapper): options = self.widget.options selected = [] for i, opt in enumerate(options): - if opt in value: + if opt in value or opt==value: selected.append(i) self.widget.setSelectedItems(selected) else: diff --git a/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py b/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py old mode 100644 new mode 100755 index 47b41f23bef..4faa3d92d90 --- a/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py +++ b/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py @@ -173,6 +173,16 @@ class ModelerParameterDefinitionDialog(QDialog): if self.param is not None: self.multipleCheck.setChecked(self.param.allowMultiple()) self.verticalLayout.addWidget(self.multipleCheck) + + self.verticalLayout.addWidget(QLabel(self.tr('Default value'))) + self.defaultTextBox = QLineEdit() + self.defaultTextBox.setToolTip(self.tr('Default field name, or ; separated list of field names for multiple field parameters')) + if self.param is not None: + default = self.param.defaultValue() + if default is not None: + self.defaultTextBox.setText(str(default)) + self.verticalLayout.addWidget(self.defaultTextBox) + elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BAND or \ isinstance(self.param, QgsProcessingParameterBand): self.verticalLayout.addWidget(QLabel(self.tr('Parent layer'))) @@ -339,7 +349,10 @@ class ModelerParameterDefinitionDialog(QDialog): return parent = self.parentCombo.currentData() datatype = self.datatypeCombo.currentData() - self.param = QgsProcessingParameterField(name, description, None, parent, datatype, self.multipleCheck.isChecked()) + default = self.defaultTextBox.text() + if not default: + default = None + self.param = QgsProcessingParameterField(name, description, defaultValue=default, parentLayerParameterName=parent, type=datatype, allowMultiple=self.multipleCheck.isChecked()) elif (self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BAND or isinstance(self.param, QgsProcessingParameterBand)): if self.parentCombo.currentIndex() < 0: