[processing] fix handling of the multiple enum values

This commit is contained in:
Alexander Bruy 2018-05-07 09:02:06 +03:00 committed by Nyall Dawson
parent 33cfed2e06
commit 39456ba6b4
2 changed files with 5 additions and 4 deletions

View File

@ -83,13 +83,14 @@ class EnumModelerWidget(BASE, WIDGET):
return items
def defaultOption(self):
def defaultOptions(self):
options = []
model = self.lstItems.model()
for i in range(model.rowCount()):
item = model.item(i)
if item.checkState() == Qt.Checked:
return i
return None
options.append(i)
return options if len(options) > 0 else None
def allowMultiple(self):
return self.chkAllowMultiple.isChecked()

View File

@ -421,7 +421,7 @@ class ModelerParameterDefinitionDialog(QDialog):
self.param = QgsProcessingParameterCrs(name, description, self.selector.crs().authid())
elif (self.paramType == parameters.PARAMETER_ENUM or
isinstance(self.param, QgsProcessingParameterEnum)):
self.param = QgsProcessingParameterEnum(name, description, self.widget.options(), self.widget.allowMultiple(), self.widget.defaultOption())
self.param = QgsProcessingParameterEnum(name, description, self.widget.options(), self.widget.allowMultiple(), self.widget.defaultOptions())
elif (self.paramType == parameters.PARAMETER_MATRIX or
isinstance(self.param, QgsProcessingParameterMatrix)):
self.param = QgsProcessingParameterMatrix(name, description, hasFixedNumberRows=self.widget.fixedRows(), headers=self.widget.headers(), defaultValue=self.widget.value())