QGIS API Documentation  3.11.0-Master (68611307d7)
Public Types | Public Member Functions | Protected Attributes | Friends | List of all members
QgsProcessingParameterDefinition Class Referenceabstract

Base class for the definition of processing parameters. More...

#include <qgsprocessingparameters.h>

Inheritance diagram for QgsProcessingParameterDefinition:
Inheritance graph
[legend]

Public Types

enum  Flag { FlagAdvanced = 1 << 1, FlagHidden = 1 << 2, FlagOptional = 1 << 3, FlagIsModelOutput = 1 << 4 }
 Parameter flags. More...
 

Public Member Functions

 QgsProcessingParameterDefinition (const QString &name, const QString &description=QString(), const QVariant &defaultValue=QVariant(), bool optional=false)
 Constructor for QgsProcessingParameterDefinition. More...
 
virtual ~QgsProcessingParameterDefinition ()=default
 
QStringList additionalExpressionContextVariables () const
 Returns a list of additional expression context variables which are available for use when evaluating this parameter. More...
 
QgsProcessingAlgorithmalgorithm () const
 Returns a pointer to the algorithm which owns this parameter. More...
 
virtual QString asPythonString (QgsProcessing::PythonOutputType outputType=QgsProcessing::PythonQgsProcessingAlgorithmSubclass) const
 Returns the parameter definition as a Python command which can be used within a Python Processing script. More...
 
virtual QString asScriptCode () const
 Returns the parameter definition encoded in a string which can be used within a Processing script. More...
 
virtual bool checkValueIsAcceptable (const QVariant &input, QgsProcessingContext *context=nullptr) const
 Checks whether the specified input value is acceptable for the parameter. More...
 
virtual QgsProcessingParameterDefinitionclone () const =0
 Creates a clone of the parameter definition. More...
 
QVariant defaultValue () const
 Returns the default value for the parameter. More...
 
virtual QStringList dependsOnOtherParameters () const
 Returns a list of other parameter names on which this parameter is dependent (e.g. More...
 
QString description () const
 Returns the description for the parameter. More...
 
QString dynamicLayerParameterName () const
 Returns the name of the parameter for a layer linked to a dynamic parameter, or an empty string if this is not set. More...
 
QgsPropertyDefinition dynamicPropertyDefinition () const
 Returns the property definition for dynamic properties. More...
 
Flags flags () const
 Returns any flags associated with the parameter. More...
 
virtual bool fromVariantMap (const QVariantMap &map)
 Restores this parameter to a QVariantMap. More...
 
virtual bool isDestination () const
 Returns true if this parameter represents a file or layer destination, e.g. More...
 
bool isDynamic () const
 Returns true if the parameter supports is dynamic, and can support data-defined values (i.e. More...
 
QVariantMap metadata () const
 Returns the parameter's freeform metadata. More...
 
QVariantMap & metadata ()
 Returns the parameter's freeform metadata. More...
 
QString name () const
 Returns the name of the parameter. More...
 
QgsProcessingProviderprovider () const
 Returns a pointer to the provider for the algorithm which owns this parameter. More...
 
void setAdditionalExpressionContextVariables (const QStringList &variables)
 Sets a list of additional expression context variables which are available for use when evaluating this parameter. More...
 
void setDefaultValue (const QVariant &value)
 Sets the default value for the parameter. More...
 
void setDescription (const QString &description)
 Sets the description for the parameter. More...
 
void setDynamicLayerParameterName (const QString &name)
 Sets the name for the parameter for a layer linked to a dynamic parameter, or an empty string if this is not set. More...
 
void setDynamicPropertyDefinition (const QgsPropertyDefinition &definition)
 Sets the property definition for dynamic properties. More...
 
void setFlags (Flags flags)
 Sets the flags associated with the parameter. More...
 
void setIsDynamic (bool dynamic)
 Sets whether the parameter is dynamic, and can support data-defined values (i.e. More...
 
void setMetadata (const QVariantMap &metadata)
 Sets the parameter's freeform metadata. More...
 
void setName (const QString &name)
 Sets the name of the parameter. More...
 
virtual QString toolTip () const
 Returns a formatted tooltip for use with the parameter, which gives helpful information like parameter description, ID, and extra content like default values (depending on parameter type). More...
 
virtual QVariantMap toVariantMap () const
 Saves this parameter to a QVariantMap. More...
 
virtual QString type () const =0
 Unique parameter type name. More...
 
virtual QString valueAsPythonString (const QVariant &value, QgsProcessingContext &context) const
 Returns a string version of the parameter input value, which is suitable for use as an input parameter value when running an algorithm directly from a Python command. More...
 

Protected Attributes

QStringList mAdditionalExpressionVariables
 Additional expression context variables exposed for use by this parameter. More...
 
QgsProcessingAlgorithmmAlgorithm = nullptr
 Pointer to algorithm which owns this parameter. More...
 
QVariant mDefault
 Default value for parameter. More...
 
QString mDescription
 Parameter description. More...
 
QString mDynamicLayerParameterName
 Linked vector layer parameter name for dynamic properties. More...
 
Flags mFlags
 Parameter flags. More...
 
bool mIsDynamic = false
 True for dynamic parameters, which can have data-defined (QgsProperty) based values. More...
 
QVariantMap mMetadata
 Freeform metadata for parameter. Mostly used by widget wrappers to customize their appearance and behavior. More...
 
QString mName
 Parameter name. More...
 
QgsPropertyDefinition mPropertyDefinition
 Data defined property definition. More...
 

Friends

class QgsProcessingAlgorithm
 

Detailed Description

Base class for the definition of processing parameters.

Parameter definitions encapsulate properties regarding the behavior of parameters, their acceptable ranges, defaults, etc.

Since
QGIS 3.0

Definition at line 206 of file qgsprocessingparameters.h.

Member Enumeration Documentation

◆ Flag

Parameter flags.

Enumerator
FlagAdvanced 

Parameter is an advanced parameter which should be hidden from users by default.

FlagHidden 

Parameter is hidden and should not be shown to users.

FlagOptional 

Parameter is optional.

FlagIsModelOutput 

Destination parameter is final output. The parameter name will be used.

Definition at line 283 of file qgsprocessingparameters.h.

Constructor & Destructor Documentation

◆ QgsProcessingParameterDefinition()

QgsProcessingParameterDefinition::QgsProcessingParameterDefinition ( const QString &  name,
const QString &  description = QString(),
const QVariant &  defaultValue = QVariant(),
bool  optional = false 
)

Constructor for QgsProcessingParameterDefinition.

Definition at line 1860 of file qgsprocessingparameters.cpp.

◆ ~QgsProcessingParameterDefinition()

virtual QgsProcessingParameterDefinition::~QgsProcessingParameterDefinition ( )
virtualdefault

Member Function Documentation

◆ additionalExpressionContextVariables()

QStringList QgsProcessingParameterDefinition::additionalExpressionContextVariables ( ) const
inline

Returns a list of additional expression context variables which are available for use when evaluating this parameter.

The additional variables will be added to the variables exposed from the usual expression context available to the parameter. They can be used to expose variables which are ONLY available to this parameter.

The returned list should contain the variable names only, without the usual "@" prefix.

See also
setAdditionalExpressionContextVariables()
Since
QGIS 3.8

Definition at line 537 of file qgsprocessingparameters.h.

◆ algorithm()

QgsProcessingAlgorithm * QgsProcessingParameterDefinition::algorithm ( ) const

Returns a pointer to the algorithm which owns this parameter.

May be nullptr for non-owned parameters.

See also
provider()

Definition at line 1946 of file qgsprocessingparameters.cpp.

◆ asPythonString()

QString QgsProcessingParameterDefinition::asPythonString ( QgsProcessing::PythonOutputType  outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass) const
virtual

◆ asScriptCode()

QString QgsProcessingParameterDefinition::asScriptCode ( ) const
virtual

◆ checkValueIsAcceptable()

bool QgsProcessingParameterDefinition::checkValueIsAcceptable ( const QVariant &  input,
QgsProcessingContext context = nullptr 
) const
virtual

◆ clone()

virtual QgsProcessingParameterDefinition* QgsProcessingParameterDefinition::clone ( ) const
pure virtual

◆ defaultValue()

QVariant QgsProcessingParameterDefinition::defaultValue ( ) const
inline

Returns the default value for the parameter.

See also
setDefaultValue()

Definition at line 349 of file qgsprocessingparameters.h.

◆ dependsOnOtherParameters()

virtual QStringList QgsProcessingParameterDefinition::dependsOnOtherParameters ( ) const
inlinevirtual

Returns a list of other parameter names on which this parameter is dependent (e.g.

field parameters which depend on a parent layer parameter).

Reimplemented in QgsProcessingParameterLayoutItem, QgsProcessingParameterBand, QgsProcessingParameterField, QgsProcessingParameterExpression, and QgsProcessingParameterDistance.

Definition at line 442 of file qgsprocessingparameters.h.

◆ description()

QString QgsProcessingParameterDefinition::description ( ) const
inline

Returns the description for the parameter.

This is the user-visible string used to identify this parameter.

See also
setDescription()

Definition at line 336 of file qgsprocessingparameters.h.

◆ dynamicLayerParameterName()

QString QgsProcessingParameterDefinition::dynamicLayerParameterName ( ) const
inline

Returns the name of the parameter for a layer linked to a dynamic parameter, or an empty string if this is not set.

Dynamic parameters (see isDynamic()) can have an optional vector layer parameter linked to them, which indicates which layer the fields and values will be available from when evaluating the dynamic parameter.

See also
setDynamicLayerParameterName()
isDynamic()
dynamicPropertyDefinition()

Definition at line 509 of file qgsprocessingparameters.h.

◆ dynamicPropertyDefinition()

QgsPropertyDefinition QgsProcessingParameterDefinition::dynamicPropertyDefinition ( ) const
inline

Returns the property definition for dynamic properties.

See also
isDynamic()
setDynamicPropertyDefinition()
dynamicLayerParameterName()

Definition at line 488 of file qgsprocessingparameters.h.

◆ flags()

Flags QgsProcessingParameterDefinition::flags ( ) const
inline

Returns any flags associated with the parameter.

See also
setFlags()

Definition at line 362 of file qgsprocessingparameters.h.

◆ fromVariantMap()

bool QgsProcessingParameterDefinition::fromVariantMap ( const QVariantMap &  map)
virtual

◆ isDestination()

virtual bool QgsProcessingParameterDefinition::isDestination ( ) const
inlinevirtual

Returns true if this parameter represents a file or layer destination, e.g.

parameters which are used for the destination for layers output by an algorithm will return true.

Reimplemented in QgsProcessingDestinationParameter.

Definition at line 315 of file qgsprocessingparameters.h.

◆ isDynamic()

bool QgsProcessingParameterDefinition::isDynamic ( ) const
inline

Returns true if the parameter supports is dynamic, and can support data-defined values (i.e.

QgsProperty based values).

See also
setIsDynamic()
dynamicPropertyDefinition()
dynamicLayerParameterName()

Definition at line 471 of file qgsprocessingparameters.h.

◆ metadata() [1/2]

QVariantMap QgsProcessingParameterDefinition::metadata ( ) const
inline

Returns the parameter's freeform metadata.

This is mostly used by parameter widget wrappers in order to customize their appearance and behavior.

See also
setMetadata()
Note
not available in Python bindings.

Definition at line 422 of file qgsprocessingparameters.h.

◆ metadata() [2/2]

QVariantMap& QgsProcessingParameterDefinition::metadata ( )
inline

Returns the parameter's freeform metadata.

This is mostly used by parameter widget wrappers in order to customize their appearance and behavior.

See also
setMetadata()

Definition at line 429 of file qgsprocessingparameters.h.

◆ name()

QString QgsProcessingParameterDefinition::name ( ) const
inline

Returns the name of the parameter.

This is the internal identifier by which algorithms access this parameter.

See also
setName()

Definition at line 322 of file qgsprocessingparameters.h.

◆ provider()

QgsProcessingProvider * QgsProcessingParameterDefinition::provider ( ) const

Returns a pointer to the provider for the algorithm which owns this parameter.

May be nullptr for non-owned parameters or algorithms.

See also
algorithm()

Definition at line 1951 of file qgsprocessingparameters.cpp.

◆ setAdditionalExpressionContextVariables()

void QgsProcessingParameterDefinition::setAdditionalExpressionContextVariables ( const QStringList &  variables)
inline

Sets a list of additional expression context variables which are available for use when evaluating this parameter.

The additional variables will be added to the variables exposed from the usual expression context available to the parameter. They can be used to expose variables which are ONLY available to this parameter.

The variables list should contain the variable names only, without the usual "@" prefix.

Note
Specifying variables via this method is for metadata purposes only. It is the algorithm's responsibility to correctly set the value of these additional variables in all expression context used when evaluating the parameter, in whichever way is appropriate for that particular variable.
See also
additionalExpressionContextVariables()
Since
QGIS 3.8

Definition at line 556 of file qgsprocessingparameters.h.

◆ setDefaultValue()

void QgsProcessingParameterDefinition::setDefaultValue ( const QVariant &  value)
inline

Sets the default value for the parameter.

Caller takes responsibility to ensure that value is a valid input for the parameter subclass.

See also
defaultValue()

Definition at line 356 of file qgsprocessingparameters.h.

◆ setDescription()

void QgsProcessingParameterDefinition::setDescription ( const QString &  description)
inline

Sets the description for the parameter.

This is the user-visible string used to identify this parameter.

See also
description()

Definition at line 343 of file qgsprocessingparameters.h.

◆ setDynamicLayerParameterName()

void QgsProcessingParameterDefinition::setDynamicLayerParameterName ( const QString &  name)
inline

Sets the name for the parameter for a layer linked to a dynamic parameter, or an empty string if this is not set.

Dynamic parameters (see isDynamic()) can have an optional vector layer parameter linked to them, which indicates which layer the fields and values will be available from when evaluating the dynamic parameter.

See also
dynamicLayerParameterName()
isDynamic()
setDynamicPropertyDefinition()

Definition at line 522 of file qgsprocessingparameters.h.

◆ setDynamicPropertyDefinition()

void QgsProcessingParameterDefinition::setDynamicPropertyDefinition ( const QgsPropertyDefinition definition)
inline

Sets the property definition for dynamic properties.

See also
isDynamic()
dynamicPropertyDefinition()
setDynamicLayerParameterName()

Definition at line 496 of file qgsprocessingparameters.h.

◆ setFlags()

void QgsProcessingParameterDefinition::setFlags ( Flags  flags)
inline

Sets the flags associated with the parameter.

See also
flags()

Definition at line 368 of file qgsprocessingparameters.h.

◆ setIsDynamic()

void QgsProcessingParameterDefinition::setIsDynamic ( bool  dynamic)
inline

Sets whether the parameter is dynamic, and can support data-defined values (i.e.

QgsProperty based values).

See also
isDynamic()
setDynamicPropertyDefinition()
setDynamicLayerParameterName()

Definition at line 480 of file qgsprocessingparameters.h.

◆ setMetadata()

void QgsProcessingParameterDefinition::setMetadata ( const QVariantMap &  metadata)
inline

Sets the parameter's freeform metadata.

This is mostly used by parameter widget wrappers in order to customize their appearance and behavior.

See also
metadata()

Definition at line 436 of file qgsprocessingparameters.h.

◆ setName()

void QgsProcessingParameterDefinition::setName ( const QString &  name)
inline

Sets the name of the parameter.

This is the internal identifier by which algorithms access this parameter.

See also
name()

Definition at line 329 of file qgsprocessingparameters.h.

◆ toolTip()

QString QgsProcessingParameterDefinition::toolTip ( ) const
virtual

Returns a formatted tooltip for use with the parameter, which gives helpful information like parameter description, ID, and extra content like default values (depending on parameter type).

Reimplemented in QgsProcessingParameterNumber.

Definition at line 1956 of file qgsprocessingparameters.cpp.

◆ toVariantMap()

QVariantMap QgsProcessingParameterDefinition::toVariantMap ( ) const
virtual

◆ type()

virtual QString QgsProcessingParameterDefinition::type ( ) const
pure virtual

◆ valueAsPythonString()

QString QgsProcessingParameterDefinition::valueAsPythonString ( const QVariant &  value,
QgsProcessingContext context 
) const
virtual

Friends And Related Function Documentation

◆ QgsProcessingAlgorithm

friend class QgsProcessingAlgorithm
friend

Definition at line 591 of file qgsprocessingparameters.h.

Member Data Documentation

◆ mAdditionalExpressionVariables

QStringList QgsProcessingParameterDefinition::mAdditionalExpressionVariables
protected

Additional expression context variables exposed for use by this parameter.

Definition at line 588 of file qgsprocessingparameters.h.

◆ mAlgorithm

QgsProcessingAlgorithm* QgsProcessingParameterDefinition::mAlgorithm = nullptr
protected

Pointer to algorithm which owns this parameter.

Definition at line 576 of file qgsprocessingparameters.h.

◆ mDefault

QVariant QgsProcessingParameterDefinition::mDefault
protected

Default value for parameter.

Definition at line 567 of file qgsprocessingparameters.h.

◆ mDescription

QString QgsProcessingParameterDefinition::mDescription
protected

Parameter description.

Definition at line 564 of file qgsprocessingparameters.h.

◆ mDynamicLayerParameterName

QString QgsProcessingParameterDefinition::mDynamicLayerParameterName
protected

Linked vector layer parameter name for dynamic properties.

Definition at line 585 of file qgsprocessingparameters.h.

◆ mFlags

Flags QgsProcessingParameterDefinition::mFlags
protected

Parameter flags.

Definition at line 570 of file qgsprocessingparameters.h.

◆ mIsDynamic

bool QgsProcessingParameterDefinition::mIsDynamic = false
protected

True for dynamic parameters, which can have data-defined (QgsProperty) based values.

Definition at line 579 of file qgsprocessingparameters.h.

◆ mMetadata

QVariantMap QgsProcessingParameterDefinition::mMetadata
protected

Freeform metadata for parameter. Mostly used by widget wrappers to customize their appearance and behavior.

Definition at line 573 of file qgsprocessingparameters.h.

◆ mName

QString QgsProcessingParameterDefinition::mName
protected

Parameter name.

Definition at line 561 of file qgsprocessingparameters.h.

◆ mPropertyDefinition

QgsPropertyDefinition QgsProcessingParameterDefinition::mPropertyDefinition
protected

Data defined property definition.

Definition at line 582 of file qgsprocessingparameters.h.


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