QGIS API Documentation 4.3.0-Master (52aa6503bed)
Loading...
Searching...
No Matches
qgsvaluerelationfieldformatter.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsvaluerelationfieldformatter.h - QgsValueRelationFieldFormatter
3
4 ---------------------
5 begin : 3.12.2016
6 copyright : (C) 2016 by Matthias Kuhn
7 email : matthias@opengis.ch
8 ***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 ***************************************************************************/
16#ifndef QGSVALUERELATIONFIELDKIT_H
17#define QGSVALUERELATIONFIELDKIT_H
18
19#include "qgis_core.h"
20#include "qgsexpression.h"
22#include "qgsfieldformatter.h"
23
24#include <QVariant>
25#include <QVector>
26
27class QgsProject;
28
38{
39 public:
41 {
43 ValueRelationItem( const QVariant &key, const QString &value, const QString &description = QString(), const QVariant group = QVariant() )
44 : key( key )
45 , value( value )
47 , group( group )
48 {}
49
50 ValueRelationItem() = default;
51
52 QVariant key;
53 QString value;
54 QString description;
56 QVariant group;
57 };
58
59 typedef QVector< QgsValueRelationFieldFormatter::ValueRelationItem > ValueRelationCache;
60
65
66 QString id() const override;
67 QString representValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const override;
68
69 QVariant sortValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const override;
70
71 QVariant createCache( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const override;
72
77 static QStringList valueToStringList( const QVariant &value );
78
79 // TODO QGIS 5.0 -- remove this version of function in favor of the one with explicit project parameter
92 const QVariantMap &config, const QgsFeature &formFeature = QgsFeature(), const QgsFeature &parentFormFeature = QgsFeature()
94
108 const QVariantMap &config, const QgsProject *project, const QgsFeature &formFeature = QgsFeature(), const QgsFeature &parentFormFeature = QgsFeature()
109 );
110
119 static bool expressionRequiresFormScope( const QString &expression );
120
128 static QSet<QString> expressionFormAttributes( const QString &expression );
129
137 static QSet<QString> expressionFormVariables( const QString &expression );
138
147 static bool expressionRequiresParentFormScope( const QString &expression );
148
156 static QSet<QString> expressionParentFormAttributes( const QString &expression );
157
165 static QSet<QString> expressionParentFormVariables( const QString &expression );
166
167
175 static bool expressionIsUsable( const QString &expression, const QgsFeature &feature, const QgsFeature &parentFeature = QgsFeature() );
176
181 static QgsVectorLayer *resolveLayer( const QVariantMap &config, const QgsProject *project );
182
183 QList<QgsVectorLayerRef> layerDependencies( const QVariantMap &config ) const override SIP_SKIP;
184
185 QVariantList availableValues( const QVariantMap &config, int countLimit, const QgsFieldFormatterContext &context ) const override;
186};
187
189
190#endif // QGSVALUERELATIONFIELDKIT_H
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition qgsfeature.h:60
A context for field formatter containing information like the project.
virtual QVariant createCache(QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config) const
Create a cache for a given field.
QgsFieldFormatter()=default
virtual QString id() const =0
Returns a unique id for this field formatter.
virtual QVariant sortValue(QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value) const
If the default sort order should be overwritten for this widget, you can transform the value in here.
virtual QString representValue(QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value) const
Create a pretty String representation of the value.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition qgsproject.h:114
static QgsVectorLayer * resolveLayer(const QVariantMap &config, const QgsProject *project)
Returns the (possibly nullptr) layer from the widget's config and project.
static QSet< QString > expressionFormVariables(const QString &expression)
Returns a list of variables required by the form context expression.
static bool expressionRequiresFormScope(const QString &expression)
Check if the expression requires a form scope (i.e.
static bool expressionRequiresParentFormScope(const QString &expression)
Check if the expression requires a parent form scope (i.e.
QVariant createCache(QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config) const override
Create a cache for a given field.
QList< QgsVectorLayerRef > layerDependencies(const QVariantMap &config) const override
Returns a list of weak layer references to other layers required by this formatter for the given conf...
static QSet< QString > expressionParentFormVariables(const QString &expression)
Returns a list of variables required by the parent form's form context expression.
static QSet< QString > expressionParentFormAttributes(const QString &expression)
Returns a list of attributes required by the parent form's form context expression.
static QStringList valueToStringList(const QVariant &value)
Utility to convert a list or a string representation of an (hstore style: {1,2...}...
static QSet< QString > expressionFormAttributes(const QString &expression)
Returns a list of attributes required by the form context expression.
static bool expressionIsUsable(const QString &expression, const QgsFeature &feature, const QgsFeature &parentFeature=QgsFeature())
Check whether the feature has all values required by the expression, optionally checks for parentFeat...
QVariantList availableValues(const QVariantMap &config, int countLimit, const QgsFieldFormatterContext &context) const override
Returns a list of the values that would be possible to select with this widget type On a RelationRefe...
QVector< QgsValueRelationFieldFormatter::ValueRelationItem > ValueRelationCache
QgsValueRelationFieldFormatter()
Constructor for QgsValueRelationFieldFormatter.
Represents a vector layer which manages a vector based dataset.
#define SIP_DEPRECATED
Definition qgis_sip.h:113
#define SIP_SKIP
Definition qgis_sip.h:138
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)
_LayerRef< QgsVectorLayer > QgsVectorLayerRef
QVariant group
Value used to regroup items during sorting (since QGIS 3.38).
ValueRelationItem(const QVariant &key, const QString &value, const QString &description=QString(), const QVariant group=QVariant())
Constructor for ValueRelationItem.