mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-05 00:04:40 -05:00
Allow setting default value for field parameters in models
This commit is contained in:
parent
9caa7224cd
commit
94530a9efc
6
python/plugins/processing/gui/wrappers.py
Normal file → Executable file
6
python/plugins/processing/gui/wrappers.py
Normal file → Executable file
@ -1269,6 +1269,8 @@ class TableFieldWidgetWrapper(WidgetWrapper):
|
|||||||
widget.addItem(self.NOT_SET, None)
|
widget.addItem(self.NOT_SET, None)
|
||||||
for f in fields:
|
for f in fields:
|
||||||
widget.addItem(self.dialog.resolveValueDescription(f), f)
|
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
|
return widget
|
||||||
|
|
||||||
def postInitialize(self, wrappers):
|
def postInitialize(self, wrappers):
|
||||||
@ -1297,6 +1299,8 @@ class TableFieldWidgetWrapper(WidgetWrapper):
|
|||||||
else:
|
else:
|
||||||
self.widget.setLayer(self._layer)
|
self.widget.setLayer(self._layer)
|
||||||
self.widget.setCurrentIndex(0)
|
self.widget.setCurrentIndex(0)
|
||||||
|
if self.param.defaultValue() is not None:
|
||||||
|
self.setValue(self.param.defaultValue())
|
||||||
|
|
||||||
def getFields(self):
|
def getFields(self):
|
||||||
if self._layer is None:
|
if self._layer is None:
|
||||||
@ -1322,7 +1326,7 @@ class TableFieldWidgetWrapper(WidgetWrapper):
|
|||||||
options = self.widget.options
|
options = self.widget.options
|
||||||
selected = []
|
selected = []
|
||||||
for i, opt in enumerate(options):
|
for i, opt in enumerate(options):
|
||||||
if opt in value:
|
if opt in value or opt==value:
|
||||||
selected.append(i)
|
selected.append(i)
|
||||||
self.widget.setSelectedItems(selected)
|
self.widget.setSelectedItems(selected)
|
||||||
else:
|
else:
|
||||||
|
|||||||
15
python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py
Normal file → Executable file
15
python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py
Normal file → Executable file
@ -173,6 +173,16 @@ class ModelerParameterDefinitionDialog(QDialog):
|
|||||||
if self.param is not None:
|
if self.param is not None:
|
||||||
self.multipleCheck.setChecked(self.param.allowMultiple())
|
self.multipleCheck.setChecked(self.param.allowMultiple())
|
||||||
self.verticalLayout.addWidget(self.multipleCheck)
|
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 \
|
elif self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BAND or \
|
||||||
isinstance(self.param, QgsProcessingParameterBand):
|
isinstance(self.param, QgsProcessingParameterBand):
|
||||||
self.verticalLayout.addWidget(QLabel(self.tr('Parent layer')))
|
self.verticalLayout.addWidget(QLabel(self.tr('Parent layer')))
|
||||||
@ -339,7 +349,10 @@ class ModelerParameterDefinitionDialog(QDialog):
|
|||||||
return
|
return
|
||||||
parent = self.parentCombo.currentData()
|
parent = self.parentCombo.currentData()
|
||||||
datatype = self.datatypeCombo.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
|
elif (self.paramType == ModelerParameterDefinitionDialog.PARAMETER_BAND or
|
||||||
isinstance(self.param, QgsProcessingParameterBand)):
|
isinstance(self.param, QgsProcessingParameterBand)):
|
||||||
if self.parentCombo.currentIndex() < 0:
|
if self.parentCombo.currentIndex() < 0:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user