QGIS API Documentation  3.4.3-Madeira (2f64a3c)
Classes | Static Public Member Functions | Friends | List of all members
QgsExpressionContextUtils Class Reference

Contains utilities for working with QgsExpressionContext objects, including methods for creating scopes for specific uses (e.g., project scopes, layer scopes). More...

#include <qgsexpressioncontext.h>

Static Public Member Functions

static QgsExpressionContextScopeatlasScope (QgsLayoutAtlas *atlas)
 Creates a new scope which contains variables and functions relating to a QgsLayoutAtlas. More...
 
static QgsExpressionContext createFeatureBasedContext (const QgsFeature &feature, const QgsFields &fields)
 Helper function for creating an expression context which contains just a feature and fields collection. More...
 
static QgsExpressionContextScopeformScope (const QgsFeature &formFeature=QgsFeature(), const QString &formMode=QString())
 Creates a new scope which contains functions and variables from the current attribute form/table feature. More...
 
static QList< QgsExpressionContextScope * > globalProjectLayerScopes (const QgsMapLayer *layer)
 Creates a list of three scopes: global, layer's project and layer. More...
 
static QgsExpressionContextScopeglobalScope ()
 Creates a new scope which contains variables and functions relating to the global QGIS context. More...
 
static QgsExpressionContextScopelayerScope (const QgsMapLayer *layer)
 Creates a new scope which contains variables and functions relating to a QgsMapLayer. More...
 
static QgsExpressionContextScopelayoutItemScope (const QgsLayoutItem *item)
 Creates a new scope which contains variables and functions relating to a QgsLayoutItem. More...
 
static QgsExpressionContextScopelayoutScope (const QgsLayout *layout)
 Creates a new scope which contains variables and functions relating to a QgsLayout layout. More...
 
static QgsExpressionContextScopemapSettingsScope (const QgsMapSettings &mapSettings)
 Creates a new scope which contains variables and functions relating to a QgsMapSettings object. More...
 
static QgsExpressionContextScopemapToolCaptureScope (const QList< QgsPointLocator::Match > &matches)
 Sets the expression context variables which are available for expressions triggered by a map tool capture like add feature. More...
 
static QgsExpressionContextScopenotificationScope (const QString &message=QString())
 Creates a new scope which contains variables and functions relating to provider notifications. More...
 
static QgsExpressionContextScopeprocessingAlgorithmScope (const QgsProcessingAlgorithm *algorithm, const QVariantMap &parameters, QgsProcessingContext &context)
 Creates a new scope which contains variables and functions relating to a processing algorithm, when used with the specified parameters and context. More...
 
static QgsExpressionContextScopeprojectScope (const QgsProject *project)
 Creates a new scope which contains variables and functions relating to a QGIS project. More...
 
static void registerContextFunctions ()
 Registers all known core functions provided by QgsExpressionContextScope objects. More...
 
static void removeGlobalVariable (const QString &name)
 Remove a global context variable. More...
 
static void removeProjectVariable (QgsProject *project, const QString &name)
 Remove project context variable. More...
 
static void setGlobalVariable (const QString &name, const QVariant &value)
 Sets a global context variable. More...
 
static void setGlobalVariables (const QVariantMap &variables)
 Sets all global context variables. More...
 
static void setLayerVariable (QgsMapLayer *layer, const QString &name, const QVariant &value)
 Sets a layer context variable. More...
 
static void setLayerVariables (QgsMapLayer *layer, const QVariantMap &variables)
 Sets all layer context variables. More...
 
static void setLayoutItemVariable (QgsLayoutItem *item, const QString &name, const QVariant &value)
 Sets a layout item context variable, with the given name and value. More...
 
static void setLayoutItemVariables (QgsLayoutItem *item, const QVariantMap &variables)
 Sets all layout item context variables for an item. More...
 
static void setLayoutVariable (QgsLayout *layout, const QString &name, const QVariant &value)
 Sets a layout context variable. More...
 
static void setLayoutVariables (QgsLayout *layout, const QVariantMap &variables)
 Sets all layout context variables. More...
 
static void setProjectVariable (QgsProject *project, const QString &name, const QVariant &value)
 Sets a project context variable. More...
 
static void setProjectVariables (QgsProject *project, const QVariantMap &variables)
 Sets all project context variables. More...
 
static QgsExpressionContextScopeupdateSymbolScope (const QgsSymbol *symbol, QgsExpressionContextScope *symbolScope=nullptr)
 Updates a symbol scope related to a QgsSymbol to an expression context. More...
 

Friends

class QgsLayoutItemMap
 

Detailed Description

Contains utilities for working with QgsExpressionContext objects, including methods for creating scopes for specific uses (e.g., project scopes, layer scopes).

Since
QGIS 2.12

Definition at line 756 of file qgsexpressioncontext.h.

Member Function Documentation

◆ atlasScope()

QgsExpressionContextScope * QgsExpressionContextUtils::atlasScope ( QgsLayoutAtlas atlas)
static

Creates a new scope which contains variables and functions relating to a QgsLayoutAtlas.

For instance, current page name and number.

Parameters
atlassource atlas. If null, a set of default atlas variables will be added to the scope.

Definition at line 1154 of file qgsexpressioncontext.cpp.

◆ createFeatureBasedContext()

QgsExpressionContext QgsExpressionContextUtils::createFeatureBasedContext ( const QgsFeature feature,
const QgsFields fields 
)
static

Helper function for creating an expression context which contains just a feature and fields collection.

Generally this method should not be used as the created context does not include standard scopes such as the global and project scopes.

Definition at line 1275 of file qgsexpressioncontext.cpp.

◆ formScope()

QgsExpressionContextScope * QgsExpressionContextUtils::formScope ( const QgsFeature formFeature = QgsFeature( ),
const QString &  formMode = QString() 
)
static

Creates a new scope which contains functions and variables from the current attribute form/table feature.

The variables and values in this scope will reflect the current state of the form/row being edited. The formMode (SingleEditMode etc.) is passed as text

Since
QGIS 3.2

Definition at line 769 of file qgsexpressioncontext.cpp.

◆ globalProjectLayerScopes()

QList< QgsExpressionContextScope * > QgsExpressionContextUtils::globalProjectLayerScopes ( const QgsMapLayer layer)
static

Creates a list of three scopes: global, layer's project and layer.

Since
QGIS 3.0

Definition at line 903 of file qgsexpressioncontext.cpp.

◆ globalScope()

QgsExpressionContextScope * QgsExpressionContextUtils::globalScope ( )
static

Creates a new scope which contains variables and functions relating to the global QGIS context.

For instance, QGIS version numbers and variables specified through QGIS options.

See also
setGlobalVariable()

Definition at line 582 of file qgsexpressioncontext.cpp.

◆ layerScope()

QgsExpressionContextScope * QgsExpressionContextUtils::layerScope ( const QgsMapLayer layer)
static

Creates a new scope which contains variables and functions relating to a QgsMapLayer.

For instance, layer name, id and fields.

Definition at line 862 of file qgsexpressioncontext.cpp.

◆ layoutItemScope()

QgsExpressionContextScope * QgsExpressionContextUtils::layoutItemScope ( const QgsLayoutItem item)
static

Creates a new scope which contains variables and functions relating to a QgsLayoutItem.

For instance, item size and position.

See also
setLayoutItemVariable()
setLayoutItemVariables()
Since
QGIS 3.0

Definition at line 1193 of file qgsexpressioncontext.cpp.

◆ layoutScope()

QgsExpressionContextScope * QgsExpressionContextUtils::layoutScope ( const QgsLayout layout)
static

Creates a new scope which contains variables and functions relating to a QgsLayout layout.

For instance, number of pages and page sizes.

Since
QGIS 3.0

Definition at line 1061 of file qgsexpressioncontext.cpp.

◆ mapSettingsScope()

QgsExpressionContextScope * QgsExpressionContextUtils::mapSettingsScope ( const QgsMapSettings mapSettings)
static

Creates a new scope which contains variables and functions relating to a QgsMapSettings object.

For instance, map scale and rotation.

Definition at line 953 of file qgsexpressioncontext.cpp.

◆ mapToolCaptureScope()

QgsExpressionContextScope * QgsExpressionContextUtils::mapToolCaptureScope ( const QList< QgsPointLocator::Match > &  matches)
static

Sets the expression context variables which are available for expressions triggered by a map tool capture like add feature.

Since
QGIS 3.0

Definition at line 1019 of file qgsexpressioncontext.cpp.

◆ notificationScope()

QgsExpressionContextScope * QgsExpressionContextUtils::notificationScope ( const QString &  message = QString())
static

Creates a new scope which contains variables and functions relating to provider notifications.

Parameters
messagethe notification message

Definition at line 1300 of file qgsexpressioncontext.cpp.

◆ processingAlgorithmScope()

QgsExpressionContextScope * QgsExpressionContextUtils::processingAlgorithmScope ( const QgsProcessingAlgorithm algorithm,
const QVariantMap &  parameters,
QgsProcessingContext context 
)
static

Creates a new scope which contains variables and functions relating to a processing algorithm, when used with the specified parameters and context.

For instance, algorithm name and parameter functions.

Definition at line 1283 of file qgsexpressioncontext.cpp.

◆ projectScope()

QgsExpressionContextScope * QgsExpressionContextUtils::projectScope ( const QgsProject project)
static

Creates a new scope which contains variables and functions relating to a QGIS project.

For instance, project path and title, and variables specified through the project properties.

Parameters
projectWhat project to use
See also
setProjectVariable()

Definition at line 779 of file qgsexpressioncontext.cpp.

◆ registerContextFunctions()

void QgsExpressionContextUtils::registerContextFunctions ( )
static

Registers all known core functions provided by QgsExpressionContextScope objects.

Definition at line 1307 of file qgsexpressioncontext.cpp.

◆ removeGlobalVariable()

void QgsExpressionContextUtils::removeGlobalVariable ( const QString &  name)
static

Remove a global context variable.

Parameters
namevariable name
See also
setGlobalVariable()
setGlobalVariables()
globalScope()

Definition at line 617 of file qgsexpressioncontext.cpp.

◆ removeProjectVariable()

void QgsExpressionContextUtils::removeProjectVariable ( QgsProject project,
const QString &  name 
)
static

Remove project context variable.

Parameters
projectProject to apply changes to
namevariable name
See also
setProjectVariable()
setProjectVariables()
projectScope()

Definition at line 850 of file qgsexpressioncontext.cpp.

◆ setGlobalVariable()

void QgsExpressionContextUtils::setGlobalVariable ( const QString &  name,
const QVariant &  value 
)
static

Sets a global context variable.

This variable will be contained within scopes retrieved via globalScope().

Parameters
namevariable name
valuevariable value
See also
setGlobalVariable()
globalScope()
removeGlobalVariable()

Definition at line 607 of file qgsexpressioncontext.cpp.

◆ setGlobalVariables()

void QgsExpressionContextUtils::setGlobalVariables ( const QVariantMap &  variables)
static

Sets all global context variables.

Existing global variables will be removed and replaced with the variables specified.

Parameters
variablesnew set of global variables
See also
setGlobalVariable()
globalScope()
removeGlobalVariable()

Definition at line 612 of file qgsexpressioncontext.cpp.

◆ setLayerVariable()

void QgsExpressionContextUtils::setLayerVariable ( QgsMapLayer layer,
const QString &  name,
const QVariant &  value 
)
static

Sets a layer context variable.

This variable will be contained within scopes retrieved via layerScope().

Parameters
layermap layer
namevariable name
valuevariable value
See also
setLayerVariables()
layerScope()

Definition at line 918 of file qgsexpressioncontext.cpp.

◆ setLayerVariables()

void QgsExpressionContextUtils::setLayerVariables ( QgsMapLayer layer,
const QVariantMap &  variables 
)
static

Sets all layer context variables.

Existing layer variables will be removed and replaced with the variables specified.

Parameters
layermap layer
variablesnew set of layer variables
See also
setLayerVariable()
layerScope()

Definition at line 934 of file qgsexpressioncontext.cpp.

◆ setLayoutItemVariable()

void QgsExpressionContextUtils::setLayoutItemVariable ( QgsLayoutItem item,
const QString &  name,
const QVariant &  value 
)
static

Sets a layout item context variable, with the given name and value.

This variable will be contained within scopes retrieved via layoutItemScope().

See also
setLayoutItemVariables()
layoutItemScope()
Since
QGIS 3.0

Definition at line 1240 of file qgsexpressioncontext.cpp.

◆ setLayoutItemVariables()

void QgsExpressionContextUtils::setLayoutItemVariables ( QgsLayoutItem item,
const QVariantMap &  variables 
)
static

Sets all layout item context variables for an item.

Existing variables will be removed and replaced with the variables specified.

See also
setLayoutItemVariable()
layoutItemScope()
Since
QGIS 3.0

Definition at line 1256 of file qgsexpressioncontext.cpp.

◆ setLayoutVariable()

void QgsExpressionContextUtils::setLayoutVariable ( QgsLayout layout,
const QString &  name,
const QVariant &  value 
)
static

Sets a layout context variable.

This variable will be contained within scopes retrieved via layoutScope().

Parameters
layouttarget layout
namevariable name
valuevariable value
See also
setLayoutVariables()
layoutScope()
Since
QGIS 3.0

Definition at line 1119 of file qgsexpressioncontext.cpp.

◆ setLayoutVariables()

void QgsExpressionContextUtils::setLayoutVariables ( QgsLayout layout,
const QVariantMap &  variables 
)
static

Sets all layout context variables.

Existing layout variables will be removed and replaced with the variables specified.

Parameters
layouttarget layout
variablesnew set of layer variables
See also
setLayoutVariable()
layoutScope()
Since
QGIS 3.0

Definition at line 1135 of file qgsexpressioncontext.cpp.

◆ setProjectVariable()

void QgsExpressionContextUtils::setProjectVariable ( QgsProject project,
const QString &  name,
const QVariant &  value 
)
static

Sets a project context variable.

This variable will be contained within scopes retrieved via projectScope().

Parameters
projectProject to apply changes to
namevariable name
valuevariable value
See also
setProjectVariables()
removeProjectVariable()
projectScope()

Definition at line 830 of file qgsexpressioncontext.cpp.

◆ setProjectVariables()

void QgsExpressionContextUtils::setProjectVariables ( QgsProject project,
const QVariantMap &  variables 
)
static

Sets all project context variables.

Existing project variables will be removed and replaced with the variables specified.

Parameters
projectProject to apply changes to
variablesnew set of project variables
See also
setProjectVariable()
removeProjectVariable()
projectScope()

Definition at line 842 of file qgsexpressioncontext.cpp.

◆ updateSymbolScope()

QgsExpressionContextScope * QgsExpressionContextUtils::updateSymbolScope ( const QgsSymbol symbol,
QgsExpressionContextScope symbolScope = nullptr 
)
static

Updates a symbol scope related to a QgsSymbol to an expression context.

Parameters
symbolsymbol to extract properties from
symbolScopepointer to an existing scope to update
Since
QGIS 2.14

Definition at line 1043 of file qgsexpressioncontext.cpp.

Friends And Related Function Documentation

◆ QgsLayoutItemMap

friend class QgsLayoutItemMap
friend

Definition at line 1006 of file qgsexpressioncontext.h.


The documentation for this class was generated from the following files: