diff --git a/python/plugins/processing/algs/qgis/FieldsCalculator.py b/python/plugins/processing/algs/qgis/FieldsCalculator.py index d97df4332d9..d04e65c6029 100644 --- a/python/plugins/processing/algs/qgis/FieldsCalculator.py +++ b/python/plugins/processing/algs/qgis/FieldsCalculator.py @@ -108,10 +108,7 @@ class FieldsCalculator(GeoAlgorithm): exp.setDistanceUnits(QgsProject.instance().distanceUnits()) exp.setAreaUnits(QgsProject.instance().areaUnits()) - exp_context = QgsExpressionContext() - exp_context.appendScope(QgsExpressionContextUtils.globalScope()) - exp_context.appendScope(QgsExpressionContextUtils.projectScope()) - exp_context.appendScope(QgsExpressionContextUtils.layerScope(layer)) + exp_context = QgsExpressionContext(QgsExpressionContextUtils.globalProjectLayerScopes(layer)) if not exp.prepare(exp_context): raise GeoAlgorithmExecutionException( diff --git a/python/plugins/processing/algs/qgis/GeometryByExpression.py b/python/plugins/processing/algs/qgis/GeometryByExpression.py index be927c09e08..c8dc36d4d25 100644 --- a/python/plugins/processing/algs/qgis/GeometryByExpression.py +++ b/python/plugins/processing/algs/qgis/GeometryByExpression.py @@ -95,10 +95,7 @@ class GeometryByExpression(GeoAlgorithm): if expression.hasParserError(): raise GeoAlgorithmExecutionException(expression.parserErrorString()) - exp_context = QgsExpressionContext() - exp_context.appendScope(QgsExpressionContextUtils.globalScope()) - exp_context.appendScope(QgsExpressionContextUtils.projectScope()) - exp_context.appendScope(QgsExpressionContextUtils.layerScope(layer)) + exp_context = QgsExpressionContext(QgsExpressionContextUtils.globalProjectLayerScopes(layer)) if not expression.prepare(exp_context): raise GeoAlgorithmExecutionException( diff --git a/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py b/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py index 63b71868791..b963c1b461e 100644 --- a/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py +++ b/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py @@ -95,9 +95,7 @@ class FieldsCalculatorDialog(BASE, WIDGET): def initContext(self): exp_context = self.builder.expressionContext() - exp_context.appendScope(QgsExpressionContextUtils.globalScope()) - exp_context.appendScope(QgsExpressionContextUtils.projectScope()) - exp_context.appendScope(QgsExpressionContextUtils.layerScope(self.layer)) + exp_context.appendScopes(QgsExpressionContextUtils.globalProjectLayerScopes(self.layer)) exp_context.lastScope().setVariable("row_number", 1) exp_context.setHighlightedVariables(["row_number"]) self.builder.setExpressionContext(exp_context) diff --git a/python/plugins/processing/core/outputs.py b/python/plugins/processing/core/outputs.py index 57f30e569ed..b68427d65d1 100644 --- a/python/plugins/processing/core/outputs.py +++ b/python/plugins/processing/core/outputs.py @@ -38,13 +38,13 @@ from processing.tools.system import isWindows, getTempFilenameInTempFolder, getT from processing.tools.vector import VectorWriter, TableWriter from processing.tools import dataobjects -from qgis.core import QgsExpressionContext, QgsExpressionContextUtils, QgsExpression, QgsExpressionContextScope +from qgis.core import QgsExpressionContext, QgsExpressionContextUtils, QgsExpression, QgsExpressionContextScope, QgsProject def _expressionContext(alg): context = QgsExpressionContext() context.appendScope(QgsExpressionContextUtils.globalScope()) - context.appendScope(QgsExpressionContextUtils.projectScope()) + context.appendScope(QgsExpressionContextUtils.projectScope(QgsProject.instance())) processingScope = QgsExpressionContextScope() for param in alg.parameters: processingScope.setVariable('%s_value' % param.name, '') diff --git a/python/plugins/processing/core/parameters.py b/python/plugins/processing/core/parameters.py index d4663fbef1b..089bca31312 100644 --- a/python/plugins/processing/core/parameters.py +++ b/python/plugins/processing/core/parameters.py @@ -38,7 +38,8 @@ import numbers from qgis.utils import iface from qgis.PyQt.QtCore import QCoreApplication from qgis.core import (QgsRasterLayer, QgsVectorLayer, QgsMapLayer, QgsCoordinateReferenceSystem, - QgsExpressionContext, QgsExpressionContextUtils, QgsExpression, QgsExpressionContextScope) + QgsExpressionContext, QgsExpressionContextUtils, QgsExpression, QgsExpressionContextScope, + QgsProject) from processing.tools.vector import resolveFieldIndex, features from processing.tools import dataobjects @@ -70,7 +71,7 @@ def _createDescriptiveName(s): def _expressionContext(): context = QgsExpressionContext() context.appendScope(QgsExpressionContextUtils.globalScope()) - context.appendScope(QgsExpressionContextUtils.projectScope()) + context.appendScope(QgsExpressionContextUtils.projectScope(QgsProject.instance())) if iface.mapCanvas(): context.appendScope(QgsExpressionContextUtils.mapSettingsScope(iface.mapCanvas().mapSettings())) diff --git a/python/plugins/processing/script/ScriptAlgorithm.py b/python/plugins/processing/script/ScriptAlgorithm.py index e5d7a4ec0a7..3a594885a2b 100644 --- a/python/plugins/processing/script/ScriptAlgorithm.py +++ b/python/plugins/processing/script/ScriptAlgorithm.py @@ -29,7 +29,7 @@ __revision__ = '$Format:%H$' import os import re import json -from qgis.core import QgsExpressionContextUtils, QgsExpressionContext +from qgis.core import QgsExpressionContextUtils, QgsExpressionContext, QgsProject from qgis.PyQt.QtGui import QIcon from processing.core.GeoAlgorithm import GeoAlgorithm from processing.gui.Help2Html import getHtmlFromHelpFile @@ -166,7 +166,7 @@ class ScriptAlgorithm(GeoAlgorithm): context = QgsExpressionContext() context.appendScope(QgsExpressionContextUtils.globalScope()) - context.appendScope(QgsExpressionContextUtils.projectScope()) + context.appendScope(QgsExpressionContextUtils.projectScope(QgsProject.instance())) for var in variables: varname = var[1:] if context.hasVariable(varname):