Skip to content

Commit 128da30

Browse files
volayaalexbruy
authored andcommitted
[processing] better update of expression widget when layer is changed in fields calculator
1 parent c0e3b8f commit 128da30

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py

+8-9
Original file line numberDiff line numberDiff line change
@@ -90,22 +90,21 @@ def manageGui(self):
9090

9191
self.builder.loadRecent('fieldcalc')
9292

93-
self.updateLayer()
93+
self.initContext()
9494

95-
def updateLayer(self):
96-
self.layer = dataobjects.getObject(self.cmbInputLayer.currentText())
97-
98-
self.builder.setLayer(self.layer)
99-
self.builder.loadFieldNames()
100-
101-
exp_context = QgsExpressionContext()
95+
def initContext(self):
96+
exp_context = self.builder.expressionContext()
10297
exp_context.appendScope(QgsExpressionContextUtils.globalScope())
10398
exp_context.appendScope(QgsExpressionContextUtils.projectScope())
10499
exp_context.appendScope(QgsExpressionContextUtils.layerScope(self.layer))
105100
exp_context.lastScope().setVariable("row_number", 1)
106101
exp_context.setHighlightedVariables(["row_number"])
107102
self.builder.setExpressionContext(exp_context)
108-
103+
104+
def updateLayer(self):
105+
self.layer = dataobjects.getObject(self.cmbInputLayer.currentText())
106+
self.builder.setLayer(self.layer)
107+
self.builder.loadFieldNames()
109108
self.populateFields()
110109

111110
def setupSpinboxes(self, index):

0 commit comments

Comments
 (0)