QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
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 ()=default
 Default constructor. More...
 
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 QgsVectorLayerresolveLayer (const QVariantMap &config, const QgsProject *project)
 Returns the (possibly NULL) layer from the widget's config and project. More...
 
static QStringList valueToStringList (const QVariant &value)
 Utility to convert a list or a string representation of an (hstore style: {1,2...}) list in 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 111 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 119 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 248 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 234 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 273 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 243 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 43 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 48 of file qgsvaluerelationfieldformatter.cpp.

◆ resolveLayer()

QgsVectorLayer * QgsValueRelationFieldFormatter::resolveLayer ( const QVariantMap &  config,
const QgsProject project 
)
static

Returns the (possibly NULL) layer from the widget's config and project.

Since
QGIS 3.8

Definition at line 286 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 106 of file qgsvaluerelationfieldformatter.cpp.

◆ valueToStringList()

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

Utility to convert a list or a string representation of an (hstore style: {1,2...}) list in value to a string list.

Since
QGIS 3.2

Definition at line 171 of file qgsvaluerelationfieldformatter.cpp.


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