QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
qgsfieldformatter.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfieldformatter.cpp - QgsFieldFormatter
3 
4  ---------------------
5  begin : 2.12.2016
6  copyright : (C) 2016 by Matthias Kuhn
7  email : [email protected]
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 #include "qgsfieldformatter.h"
17 
18 #include "qgsfield.h"
19 #include "qgsfields.h"
20 #include "qgsvectorlayer.h"
21 #include "qgsvectordataprovider.h"
22 
23 
24 QString QgsFieldFormatter::representValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const
25 {
26  Q_UNUSED( config )
27  Q_UNUSED( cache )
28 
29  QString defVal;
30  if ( layer->fields().fieldOrigin( fieldIndex ) == QgsFields::OriginProvider && layer->dataProvider() )
31  defVal = layer->dataProvider()->defaultValueClause( layer->fields().fieldOriginIndex( fieldIndex ) );
32 
33  return value == defVal ? defVal : layer->fields().at( fieldIndex ).displayString( value );
34 }
35 
36 QVariant QgsFieldFormatter::sortValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const
37 {
38  Q_UNUSED( layer )
39  Q_UNUSED( fieldIndex )
40  Q_UNUSED( config )
41  Q_UNUSED( cache )
42 
43  return value;
44 }
45 
46 Qt::AlignmentFlag QgsFieldFormatter::alignmentFlag( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const
47 {
48  Q_UNUSED( config )
49 
50  QgsField field = layer->fields().at( fieldIndex );
51  if ( field.isNumeric() || field.isDateOrTime() )
52  return Qt::AlignRight;
53  else
54  return Qt::AlignLeft;
55 }
56 
57 QVariant QgsFieldFormatter::createCache( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const
58 {
59  Q_UNUSED( layer )
60  Q_UNUSED( fieldIndex )
61  Q_UNUSED( config )
62 
63  return QVariant();
64 }
FieldOrigin fieldOrigin(int fieldIdx) const
Gets field's origin (value from an enumeration)
Definition: qgsfields.cpp:189
virtual QVariant createCache(QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config) const
Create a cache for a given field.
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...
Field comes from the underlying data provider of the vector layer (originIndex = index in provider's ...
Definition: qgsfields.h:49
QgsField at(int i) const
Gets field at particular index (must be in range 0..N-1)
Definition: qgsfields.cpp:163
int fieldOriginIndex(int fieldIdx) const
Gets field's origin index (its meaning is specific to each type of origin)
Definition: qgsfields.cpp:197
QgsFields fields() const FINAL
Returns the list of fields of this layer.
virtual Qt::AlignmentFlag alignmentFlag(QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config) const
Returns the alignment for a particular field.
virtual QString defaultValueClause(int fieldIndex) const
Returns any default value clauses which are present at the provider for a specified field index...
QString displayString(const QVariant &v) const
Formats string for display.
Definition: qgsfield.cpp:211
Encapsulate a field in an attribute table or data source.
Definition: qgsfield.h:48
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.
bool isDateOrTime
Definition: qgsfield.h:53
bool isNumeric
Definition: qgsfield.h:52
QgsVectorDataProvider * dataProvider() FINAL
Returns the layer's data provider, it may be nullptr.
Represents a vector layer which manages a vector based data sets.