mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
Fix some missing expression context variables in processing expression based widgets
This commit is contained in:
parent
e533a4078c
commit
60a1d6306f
@ -35,7 +35,8 @@ from qgis.PyQt.QtCore import QDir, QFileInfo
|
|||||||
from qgis.core import (Qgis,
|
from qgis.core import (Qgis,
|
||||||
QgsApplication,
|
QgsApplication,
|
||||||
QgsSettings,
|
QgsSettings,
|
||||||
QgsProcessingParameterDefinition)
|
QgsProcessingParameterDefinition,
|
||||||
|
QgsProcessingModelAlgorithm)
|
||||||
from qgis.gui import (QgsProcessingParameterWidgetContext,
|
from qgis.gui import (QgsProcessingParameterWidgetContext,
|
||||||
QgsProcessingContextGenerator)
|
QgsProcessingContextGenerator)
|
||||||
from qgis.utils import iface
|
from qgis.utils import iface
|
||||||
@ -273,6 +274,9 @@ class BatchPanel(BASE, WIDGET):
|
|||||||
widget_context = QgsProcessingParameterWidgetContext()
|
widget_context = QgsProcessingParameterWidgetContext()
|
||||||
if iface is not None:
|
if iface is not None:
|
||||||
widget_context.setMapCanvas(iface.mapCanvas())
|
widget_context.setMapCanvas(iface.mapCanvas())
|
||||||
|
if isinstance(self.alg, QgsProcessingModelAlgorithm):
|
||||||
|
widget_context.setModel(self.alg)
|
||||||
|
|
||||||
wrapper.setWidgetContext(widget_context)
|
wrapper.setWidgetContext(widget_context)
|
||||||
widget = wrapper.createWrappedWidget(context)
|
widget = wrapper.createWrappedWidget(context)
|
||||||
wrapper.registerProcessingContextGenerator(self.context_generator)
|
wrapper.registerProcessingContextGenerator(self.context_generator)
|
||||||
|
@ -41,7 +41,8 @@ from qgis.core import (QgsProcessingParameterDefinition,
|
|||||||
QgsProcessingParameterRasterDestination,
|
QgsProcessingParameterRasterDestination,
|
||||||
QgsProcessingParameterFeatureSink,
|
QgsProcessingParameterFeatureSink,
|
||||||
QgsProcessingParameterVectorDestination,
|
QgsProcessingParameterVectorDestination,
|
||||||
QgsProject)
|
QgsProject,
|
||||||
|
QgsProcessingModelAlgorithm)
|
||||||
from qgis.gui import (QgsProcessingContextGenerator,
|
from qgis.gui import (QgsProcessingContextGenerator,
|
||||||
QgsProcessingParameterWidgetContext)
|
QgsProcessingParameterWidgetContext)
|
||||||
from qgis.utils import iface
|
from qgis.utils import iface
|
||||||
@ -128,6 +129,8 @@ class ParametersPanel(BASE, WIDGET):
|
|||||||
widget_context = QgsProcessingParameterWidgetContext()
|
widget_context = QgsProcessingParameterWidgetContext()
|
||||||
if iface is not None:
|
if iface is not None:
|
||||||
widget_context.setMapCanvas(iface.mapCanvas())
|
widget_context.setMapCanvas(iface.mapCanvas())
|
||||||
|
if isinstance(self.alg, QgsProcessingModelAlgorithm):
|
||||||
|
widget_context.setModel(self.alg)
|
||||||
|
|
||||||
# Create widgets and put them in layouts
|
# Create widgets and put them in layouts
|
||||||
for param in self.alg.parameterDefinitions():
|
for param in self.alg.parameterDefinitions():
|
||||||
|
@ -245,7 +245,7 @@ QgsExpressionContext QgsAbstractProcessingParameterWidgetWrapper::createExpressi
|
|||||||
if ( mWidgetContext.model()->childAlgorithms().contains( mWidgetContext.modelChildAlgorithmId() ) )
|
if ( mWidgetContext.model()->childAlgorithms().contains( mWidgetContext.modelChildAlgorithmId() ) )
|
||||||
alg = mWidgetContext.model()->childAlgorithm( mWidgetContext.modelChildAlgorithmId() ).algorithm();
|
alg = mWidgetContext.model()->childAlgorithm( mWidgetContext.modelChildAlgorithmId() ).algorithm();
|
||||||
|
|
||||||
QgsExpressionContextScope *algorithmScope = QgsExpressionContextUtils::processingAlgorithmScope( alg, QVariantMap(), *context );
|
QgsExpressionContextScope *algorithmScope = QgsExpressionContextUtils::processingAlgorithmScope( alg ? alg : mParameterDefinition->algorithm(), QVariantMap(), *context );
|
||||||
c << algorithmScope;
|
c << algorithmScope;
|
||||||
QgsExpressionContextScope *childScope = mWidgetContext.model()->createExpressionContextScopeForChildAlgorithm( mWidgetContext.modelChildAlgorithmId(), *context, QVariantMap(), QVariantMap() );
|
QgsExpressionContextScope *childScope = mWidgetContext.model()->createExpressionContextScopeForChildAlgorithm( mWidgetContext.modelChildAlgorithmId(), *context, QVariantMap(), QVariantMap() );
|
||||||
c << childScope;
|
c << childScope;
|
||||||
@ -257,6 +257,11 @@ QgsExpressionContext QgsAbstractProcessingParameterWidgetWrapper::createExpressi
|
|||||||
c.setHighlightedVariables( highlightedVariables );
|
c.setHighlightedVariables( highlightedVariables );
|
||||||
c.setHighlightedFunctions( highlightedFunctions );
|
c.setHighlightedFunctions( highlightedFunctions );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( mParameterDefinition->algorithm() )
|
||||||
|
c << QgsExpressionContextUtils::processingAlgorithmScope( mParameterDefinition->algorithm(), QVariantMap(), *context );
|
||||||
|
}
|
||||||
|
|
||||||
if ( linkedVectorLayer() )
|
if ( linkedVectorLayer() )
|
||||||
c << QgsExpressionContextUtils::layerScope( linkedVectorLayer() );
|
c << QgsExpressionContextUtils::layerScope( linkedVectorLayer() );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user