From ed94aff17d2ddd65c98c5a67f2196da4fa45bbf6 Mon Sep 17 00:00:00 2001 From: "arnaud.morvan@camptocamp.com" Date: Wed, 11 Feb 2015 14:34:12 +0100 Subject: [PATCH 1/2] Fix #12183 - avoid error message in fieldsmapper when no field type selected --- python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py b/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py index a3e66f2efc53..560db398a8d3 100644 --- a/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py +++ b/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py @@ -132,7 +132,7 @@ def data(self, index, role=QtCore.Qt.DisplayRole): fieldType = column_def['type'] if fieldType == QtCore.QVariant.Type: - if value == 0: + if value == QtCore.QVariant.Invalid: return '' return self.fieldTypes[value] return value @@ -277,6 +277,8 @@ def setModelData(self, editor, model, index): fieldType = FieldsMappingModel.columns[column]['type'] if fieldType == QtCore.QVariant.Type: value = editor.itemData(editor.currentIndex()) + if value is None: + value = QtCore.QVariant.Invalid model.setData(index, value) elif fieldType == QgsExpression: From 3c938275ebbb5cde21c3a19f3bc804721c63f1ff Mon Sep 17 00:00:00 2001 From: "arnaud.morvan@camptocamp.com" Date: Wed, 11 Feb 2015 15:46:51 +0100 Subject: [PATCH 2/2] Fix #12182 - In FieldsMapper, emit commitData on expression editor change --- .../plugins/processing/algs/qgis/ui/FieldsMappingPanel.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py b/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py index 560db398a8d3..21f2c7199520 100644 --- a/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py +++ b/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py @@ -243,7 +243,7 @@ def createEditor(self, parent, option, index): elif fieldType == QgsExpression: editor = QgsFieldExpressionWidget(parent) editor.setLayer(index.model().layer()) - # editor.fieldChanged.connect(self.on_expression_fieldChange) + editor.fieldChanged.connect(self.on_expression_fieldChange) else: editor = QtGui.QStyledItemDelegate.createEditor(self, parent, option, index) @@ -291,9 +291,8 @@ def setModelData(self, editor, model, index): def updateEditorGeometry(self, editor, option, index): editor.setGeometry(option.rect) - def on_expression_fieldChange(self, fieldName, isValid): - # self.commitData.emit(self.sender()) - pass + def on_expression_fieldChange(self, fieldName): + self.commitData.emit(self.sender()) class FieldsMappingPanel(QtGui.QWidget, Ui_Form):