QGIS API Documentation  3.6.0-Noosa (5873452)
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
QgsValueRelationFieldFormatter Class Reference

Field formatter for a value relation field. More...

#include <qgsvaluerelationfieldformatter.h>

Inheritance diagram for QgsValueRelationFieldFormatter:
Inheritance graph
[legend]

Classes

struct  ValueRelationItem
 

Public Types

typedef QVector< QgsValueRelationFieldFormatter::ValueRelationItemValueRelationCache
 

Public Member Functions

 QgsValueRelationFieldFormatter ()=default
 Constructor for QgsValueRelationFieldFormatter. More...
 
QVariant createCache (QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config) const override
 Create a cache for a given field. More...
 
QString id () const override
 Returns a unique id for this field formatter. More...
 
QString representValue (QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value) const override
 Create a pretty String representation of the value. More...
 
QVariant sortValue (QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value) const override
 If the default sort order should be overwritten for this widget, you can transform the value in here. More...
 
- Public Member Functions inherited from QgsFieldFormatter
 QgsFieldFormatter ()
 
virtual ~QgsFieldFormatter ()=default
 
virtual Qt::AlignmentFlag alignmentFlag (QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config) const
 Returns the alignment for a particular field. More...
 

Static Public Member Functions

static QgsValueRelationFieldFormatter::ValueRelationCache createCache (const QVariantMap &config, const QgsFeature &formFeature=QgsFeature())
 Create a cache for a value relation field. More...
 
static QSet< QString > expressionFormAttributes (const QString &expression)
 Returns a list of attributes required by the form context expression. More...
 
static QSet< QString > expressionFormVariables (const QString &expression)
 Returns a list of variables required by the form context expression. More...
 
static bool expressionIsUsable (const QString &expression, const QgsFeature &feature)
 Check whether the feature has all values required by the expression. More...
 
static bool expressionRequiresFormScope (const QString &expression)
 Check if the expression requires a form scope (i.e. More...
 
static QStringList valueToStringList (const QVariant &value)
 Utility to convert an array or a string representation of an array value to a string list. More...
 

Detailed Description

Field formatter for a value relation field.

A value relation field formatter looks up the values from features on another layer.

Since
QGIS 3.0

Definition at line 36 of file qgsvaluerelationfieldformatter.h.

Member Typedef Documentation

◆ ValueRelationCache

Definition at line 54 of file qgsvaluerelationfieldformatter.h.

Constructor & Destructor Documentation

◆ QgsValueRelationFieldFormatter()

QgsValueRelationFieldFormatter::QgsValueRelationFieldFormatter ( )
default

Member Function Documentation

◆ createCache() [1/2]

QVariant QgsValueRelationFieldFormatter::createCache ( QgsVectorLayer layer,
int  fieldIndex,
const QVariantMap &  config 
) const
overridevirtual

Create a cache for a given field.

This will be used in situations where a field is being represented various times in a loop. And will be passed to other methods on QgsFieldKit and QgsEditorWidgetWrapper.

For example, the attribute table will create a cache once for each field and then use this cache for representation. The QgsValueRelationFieldFormatter and QgsValueRelationEditorWidget implement this functionality to create a lookuptable once (a QVariantMap / dict) and are make use of a cache if present.

Since
QGIS 3.0

Reimplemented from QgsFieldFormatter.

Definition at line 105 of file qgsvaluerelationfieldformatter.cpp.

◆ createCache() [2/2]

QgsValueRelationFieldFormatter::ValueRelationCache QgsValueRelationFieldFormatter::createCache ( const QVariantMap &  config,
const QgsFeature formFeature = QgsFeature() 
)
static

Create a cache for a value relation field.

This can be used to keep the value map in the local memory if doing multiple lookups in a loop.

Parameters
configThe widget configuration
formFeatureThe feature currently being edited with current attribute values
Returns
A kvp list of values for the widget
Since
QGIS 3.0

Definition at line 113 of file qgsvaluerelationfieldformatter.cpp.

◆ expressionFormAttributes()

QSet< QString > QgsValueRelationFieldFormatter::expressionFormAttributes ( const QString &  expression)
static

Returns a list of attributes required by the form context expression.

Parameters
expressionForm filter expression
Returns
list of attributes required by the expression
Since
QGIS 3.2

Definition at line 200 of file qgsvaluerelationfieldformatter.cpp.

◆ expressionFormVariables()

QSet< QString > QgsValueRelationFieldFormatter::expressionFormVariables ( const QString &  expression)
static

Returns a list of variables required by the form context expression.

Parameters
expressionForm filter expression
Returns
list of variables required by the expression
Since
QGIS 3.2

Definition at line 186 of file qgsvaluerelationfieldformatter.cpp.

◆ expressionIsUsable()

bool QgsValueRelationFieldFormatter::expressionIsUsable ( const QString &  expression,
const QgsFeature feature 
)
static

Check whether the feature has all values required by the expression.

Returns
True if the expression can be used
Since
QGIS 3.2

Definition at line 225 of file qgsvaluerelationfieldformatter.cpp.

◆ expressionRequiresFormScope()

bool QgsValueRelationFieldFormatter::expressionRequiresFormScope ( const QString &  expression)
static

Check if the expression requires a form scope (i.e.

if it uses fields or geometry of the currently edited feature).

Parameters
expressionThe widget's filter expression
Returns
true if the expression requires a form scope
Since
QGIS 3.2

Definition at line 195 of file qgsvaluerelationfieldformatter.cpp.

◆ id()

QString QgsValueRelationFieldFormatter::id ( ) const
overridevirtual

Returns a unique id for this field formatter.

This id will later be used to identify this field formatter in the registry with QgsFieldFormatterRegistry::fieldFormatter().

This id matches the id of a QgsEditorWidgetFactory.

Implements QgsFieldFormatter.

Definition at line 37 of file qgsvaluerelationfieldformatter.cpp.

◆ representValue()

QString QgsValueRelationFieldFormatter::representValue ( QgsVectorLayer layer,
int  fieldIndex,
const QVariantMap &  config,
const QVariant &  cache,
const QVariant &  value 
) const
overridevirtual

Create a pretty String representation of the value.

Returns
By default the string representation of the provided value as implied by the field definition is returned.
Since
QGIS 3.0

Reimplemented from QgsFieldFormatter.

Definition at line 42 of file qgsvaluerelationfieldformatter.cpp.

◆ sortValue()

QVariant QgsValueRelationFieldFormatter::sortValue ( QgsVectorLayer layer,
int  fieldIndex,
const QVariantMap &  config,
const QVariant &  cache,
const QVariant &  value 
) const
overridevirtual

If the default sort order should be overwritten for this widget, you can transform the value in here.

Returns
an unmodified value by default.
Since
QGIS 3.0

Reimplemented from QgsFieldFormatter.

Definition at line 100 of file qgsvaluerelationfieldformatter.cpp.

◆ valueToStringList()

QStringList QgsValueRelationFieldFormatter::valueToStringList ( const QVariant &  value)
static

Utility to convert an array or a string representation of an array value to a string list.

Since
QGIS 3.2

Definition at line 165 of file qgsvaluerelationfieldformatter.cpp.


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