QGIS API Documentation 3.30.0-'s-Hertogenbosch (f186b8efe0)
qgsfieldformatter.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsfieldformatter.h - QgsFieldFormatter
3
4 ---------------------
5 begin : 2.12.2016
6 copyright : (C) 2016 by Matthias Kuhn
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 QGSFIELDKIT_H
17#define QGSFIELDKIT_H
18
19#include <QString>
20#include <QVariant>
21
22#include "qgis_core.h"
23#include "qgsvectorlayerref.h"
24
25class QgsVectorLayer;
26
33class CORE_EXPORT QgsFieldFormatterContext
34{
35 public:
36
41
46 QgsProject *project() const { return mProject; }
47
52 void setProject( QgsProject *project ) { mProject = project; }
53
54 private:
55 QgsProject *mProject = nullptr;
56};
57
72class CORE_EXPORT QgsFieldFormatter
73{
74 public:
75
79 QgsFieldFormatter() = default;
80
81 virtual ~QgsFieldFormatter() = default;
82
88 enum Flag
89 {
90 CanProvideAvailableValues = 1
91 };
92 Q_DECLARE_FLAGS( Flags, Flag )
93
94
100 virtual QString id() const = 0;
101
109 virtual QString representValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const;
110
118 virtual QVariant sortValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const;
119
126 virtual Qt::AlignmentFlag alignmentFlag( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const;
127
141 virtual QVariant createCache( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const;
142
155 virtual QList< QgsVectorLayerRef > layerDependencies( const QVariantMap &config ) const SIP_SKIP;
156
163 virtual QVariantList availableValues( const QVariantMap &config, int countLimit, const QgsFieldFormatterContext &context ) const;
164
170 Flags flags() const { return mFlags; }
171
177 void setFlags( const Flags &flags );
178
179 private:
180 Flags mFlags;
181};
182
183#endif // QGSFIELDKIT_H
A context for field formatter containing information like the project.
void setProject(QgsProject *project)
Sets the project used in field formatter.
QgsProject * project() const
Returns the project used in field formatter.
QgsFieldFormatterContext()=default
Constructor.
A field formatter helps to handle and display values for a field.
QgsFieldFormatter()=default
Default constructor.
Flag
Flags for the abilities of the formatter.
virtual ~QgsFieldFormatter()=default
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:105
Represents a vector layer which manages a vector based data sets.
#define SIP_SKIP
Definition: qgis_sip.h:126