QGIS API Documentation  3.20.0-Odense (decaadbb31)
Classes | Public Member Functions | List of all members
QgsExpressionContextScope Class Reference

Single scope for storing variables and functions for use within a QgsExpressionContext. More...

#include <qgsexpressioncontext.h>

Classes

struct  StaticVariable
 Single variable definition for use within a QgsExpressionContextScope. More...
 

Public Member Functions

 QgsExpressionContextScope (const QgsExpressionContextScope &other)
 Copy constructor. More...
 
 QgsExpressionContextScope (const QString &name=QString())
 Constructor for QgsExpressionContextScope. More...
 
 ~QgsExpressionContextScope ()
 
void addFunction (const QString &name, QgsScopedExpressionFunction *function)
 Adds a function to the scope. More...
 
void addVariable (const QgsExpressionContextScope::StaticVariable &variable)
 Adds a variable into the context scope. More...
 
QString description (const QString &name) const
 Returns the translated description for the variable with the specified name (if set). More...
 
QgsFeature feature () const
 Sets the feature associated with the scope. More...
 
QStringList filteredVariableNames () const
 Returns a filtered and sorted list of variable names contained within the scope. More...
 
QgsExpressionFunctionfunction (const QString &name) const
 Retrieves a function from the scope. More...
 
QStringList functionNames () const
 Retrieves a list of names of functions contained in the scope. More...
 
bool hasFeature () const
 Returns true if the scope has a feature associated with it. More...
 
bool hasFunction (const QString &name) const
 Tests whether a function with the specified name exists in the scope. More...
 
bool hasVariable (const QString &name) const
 Tests whether a variable with the specified name exists in the scope. More...
 
bool isReadOnly (const QString &name) const
 Tests whether the specified variable is read only and should not be editable by users. More...
 
bool isStatic (const QString &name) const
 Tests whether the variable with the specified name is static and can be cached. More...
 
QString name () const
 Returns the friendly display name of the context scope. More...
 
QgsExpressionContextScopeoperator= (const QgsExpressionContextScope &other)
 
void readXml (const QDomElement &element, const QgsReadWriteContext &context)
 Reads scope variables from an XML element. More...
 
void removeFeature ()
 Removes any feature associated with the scope. More...
 
bool removeVariable (const QString &name)
 Removes a variable from the context scope, if found. More...
 
void setFeature (const QgsFeature &feature)
 Convenience function for setting a feature for the scope. More...
 
void setFields (const QgsFields &fields)
 Convenience function for setting a fields for the scope. More...
 
void setVariable (const QString &name, const QVariant &value, bool isStatic=false)
 Convenience method for setting a variable in the context scope by name name and value. More...
 
QVariant variable (const QString &name) const
 Retrieves a variable's value from the scope. More...
 
int variableCount () const
 Returns the count of variables contained within the scope. More...
 
QStringList variableNames () const
 Returns a list of variable names contained within the scope. More...
 
bool writeXml (QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
 Writes scope variables to an XML element. More...
 

Detailed Description

Single scope for storing variables and functions for use within a QgsExpressionContext.

Examples include a project's scope, which could contain information about the current project such as the project file's location. QgsExpressionContextScope can encapsulate both variables (static values) and functions(which are calculated only when an expression is evaluated).

See QgsExpressionContextUtils for helper methods for working with QgsExpressionContextScope objects.

Since
QGIS 2.12

Definition at line 111 of file qgsexpressioncontext.h.

Constructor & Destructor Documentation

◆ QgsExpressionContextScope() [1/2]

QgsExpressionContextScope::QgsExpressionContextScope ( const QString &  name = QString())

Constructor for QgsExpressionContextScope.

Parameters
namefriendly display name for the context scope

Definition at line 37 of file qgsexpressioncontext.cpp.

◆ QgsExpressionContextScope() [2/2]

QgsExpressionContextScope::QgsExpressionContextScope ( const QgsExpressionContextScope other)

Copy constructor.

Definition at line 43 of file qgsexpressioncontext.cpp.

◆ ~QgsExpressionContextScope()

QgsExpressionContextScope::~QgsExpressionContextScope ( )

Definition at line 74 of file qgsexpressioncontext.cpp.

Member Function Documentation

◆ addFunction()

void QgsExpressionContextScope::addFunction ( const QString &  name,
QgsScopedExpressionFunction function 
)

Adds a function to the scope.

Parameters
namefunction name
functionfunction to insert. Ownership is transferred to the scope.
See also
addVariable()

Definition at line 190 of file qgsexpressioncontext.cpp.

◆ addVariable()

void QgsExpressionContextScope::addVariable ( const QgsExpressionContextScope::StaticVariable variable)

Adds a variable into the context scope.

If a variable with the same name is already set then its value is overwritten, otherwise a new variable is added to the scope.

Parameters
variabledefinition of variable to insert
See also
setVariable()
addFunction()

Definition at line 94 of file qgsexpressioncontext.cpp.

◆ description()

QString QgsExpressionContextScope::description ( const QString &  name) const

Returns the translated description for the variable with the specified name (if set).

Since
QGIS 3.0

Definition at line 170 of file qgsexpressioncontext.cpp.

◆ feature()

QgsFeature QgsExpressionContextScope::feature ( ) const
inline

Sets the feature associated with the scope.

See also
setFeature()
hasFeature()
Since
QGIS 3.0

Definition at line 308 of file qgsexpressioncontext.h.

◆ filteredVariableNames()

QStringList QgsExpressionContextScope::filteredVariableNames ( ) const

Returns a filtered and sorted list of variable names contained within the scope.

Hidden variable names will be excluded, and the list will be sorted so that read only variables are listed first.

See also
variableNames()

Definition at line 142 of file qgsexpressioncontext.cpp.

◆ function()

QgsExpressionFunction * QgsExpressionContextScope::function ( const QString &  name) const

Retrieves a function from the scope.

Parameters
namefunction name
Returns
function, or nullptr if matching function could not be found
See also
hasFunction()
functionNames()
variable()

Definition at line 180 of file qgsexpressioncontext.cpp.

◆ functionNames()

QStringList QgsExpressionContextScope::functionNames ( ) const

Retrieves a list of names of functions contained in the scope.

See also
function()
variableNames()

Definition at line 185 of file qgsexpressioncontext.cpp.

◆ hasFeature()

bool QgsExpressionContextScope::hasFeature ( ) const
inline

Returns true if the scope has a feature associated with it.

See also
feature()
Since
QGIS 3.0

Definition at line 300 of file qgsexpressioncontext.h.

◆ hasFunction()

bool QgsExpressionContextScope::hasFunction ( const QString &  name) const

Tests whether a function with the specified name exists in the scope.

Parameters
namefunction name
Returns
true if matching function was found in the scope
See also
function()
hasFunction()

Definition at line 175 of file qgsexpressioncontext.cpp.

◆ hasVariable()

bool QgsExpressionContextScope::hasVariable ( const QString &  name) const

Tests whether a variable with the specified name exists in the scope.

Parameters
namevariable name
Returns
true if matching variable was found in the scope
See also
variable()
hasFunction()

Definition at line 104 of file qgsexpressioncontext.cpp.

◆ isReadOnly()

bool QgsExpressionContextScope::isReadOnly ( const QString &  name) const

Tests whether the specified variable is read only and should not be editable by users.

Parameters
namevariable name
Returns
true if variable is read only

Definition at line 160 of file qgsexpressioncontext.cpp.

◆ isStatic()

bool QgsExpressionContextScope::isStatic ( const QString &  name) const

Tests whether the variable with the specified name is static and can be cached.

Since
QGIS 3.0

Definition at line 165 of file qgsexpressioncontext.cpp.

◆ name()

QString QgsExpressionContextScope::name ( ) const
inline

Returns the friendly display name of the context scope.

Definition at line 171 of file qgsexpressioncontext.h.

◆ operator=()

QgsExpressionContextScope & QgsExpressionContextScope::operator= ( const QgsExpressionContextScope other)

Definition at line 56 of file qgsexpressioncontext.cpp.

◆ readXml()

void QgsExpressionContextScope::readXml ( const QDomElement &  element,
const QgsReadWriteContext context 
)

Reads scope variables from an XML element.

See also
writeXml()
Since
QGIS 3.6

Definition at line 201 of file qgsexpressioncontext.cpp.

◆ removeFeature()

void QgsExpressionContextScope::removeFeature ( )
inline

Removes any feature associated with the scope.

See also
setFeature()
hasFeature()
Since
QGIS 3.0

Definition at line 325 of file qgsexpressioncontext.h.

◆ removeVariable()

bool QgsExpressionContextScope::removeVariable ( const QString &  name)

Removes a variable from the context scope, if found.

Parameters
namename of variable to remove
Returns
true if variable was removed from the scope, false if matching variable was not found within the scope

Definition at line 99 of file qgsexpressioncontext.cpp.

◆ setFeature()

void QgsExpressionContextScope::setFeature ( const QgsFeature feature)
inline

Convenience function for setting a feature for the scope.

Any existing feature set by the scope will be overwritten.

Parameters
featurefeature for scope
See also
removeFeature()
feature()

Definition at line 317 of file qgsexpressioncontext.h.

◆ setFields()

void QgsExpressionContextScope::setFields ( const QgsFields fields)

Convenience function for setting a fields for the scope.

Any existing fields set by the scope will be overwritten.

Parameters
fieldsfields for scope

Definition at line 196 of file qgsexpressioncontext.cpp.

◆ setVariable()

void QgsExpressionContextScope::setVariable ( const QString &  name,
const QVariant &  value,
bool  isStatic = false 
)

Convenience method for setting a variable in the context scope by name name and value.

If a variable with the same name is already set then its value is overwritten, otherwise a new variable is added to the scope. If the isStatic parameter is set to true, this variable can be cached during the execution of QgsExpression::prepare().

See also
addVariable()

Definition at line 79 of file qgsexpressioncontext.cpp.

◆ variable()

QVariant QgsExpressionContextScope::variable ( const QString &  name) const

Retrieves a variable's value from the scope.

Parameters
namevariable name
Returns
variable value, or invalid QVariant if matching variable could not be found
See also
hasVariable()
function()

Definition at line 109 of file qgsexpressioncontext.cpp.

◆ variableCount()

int QgsExpressionContextScope::variableCount ( ) const
inline

Returns the count of variables contained within the scope.

Definition at line 259 of file qgsexpressioncontext.h.

◆ variableNames()

QStringList QgsExpressionContextScope::variableNames ( ) const

Returns a list of variable names contained within the scope.

See also
functionNames()
filteredVariableNames()

Definition at line 114 of file qgsexpressioncontext.cpp.

◆ writeXml()

bool QgsExpressionContextScope::writeXml ( QDomElement &  element,
QDomDocument &  document,
const QgsReadWriteContext context 
) const

Writes scope variables to an XML element.

See also
readXml()
Since
QGIS 3.6

Definition at line 213 of file qgsexpressioncontext.cpp.


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