QGIS API Documentation  3.4.15-Madeira (e83d02e274)
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 "qgsfields.h"
19 #include "qgsvectorlayer.h"
20 #include "qgsvectordataprovider.h"
21 
22 
23 QString QgsFieldFormatter::representValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const
24 {
25  Q_UNUSED( config )
26  Q_UNUSED( cache )
27 
28  QString defVal;
29  if ( layer->fields().fieldOrigin( fieldIndex ) == QgsFields::OriginProvider && layer->dataProvider() )
30  defVal = layer->dataProvider()->defaultValueClause( layer->fields().fieldOriginIndex( fieldIndex ) );
31 
32  return value == defVal ? defVal : layer->fields().at( fieldIndex ).displayString( value );
33 }
34 
35 QVariant QgsFieldFormatter::sortValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const
36 {
37  Q_UNUSED( layer )
38  Q_UNUSED( fieldIndex )
39  Q_UNUSED( config )
40  Q_UNUSED( cache )
41 
42  return value;
43 }
44 
45 Qt::AlignmentFlag QgsFieldFormatter::alignmentFlag( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const
46 {
47  Q_UNUSED( config );
48 
49  QVariant::Type fldType = layer->fields().at( fieldIndex ).type();
50  bool alignRight = ( fldType == QVariant::Int || fldType == QVariant::Double || fldType == QVariant::LongLong
51  || fldType == QVariant::DateTime || fldType == QVariant::Date || fldType == QVariant::Time );
52 
53  if ( alignRight )
54  return Qt::AlignRight;
55  else
56  return Qt::AlignLeft;
57 }
58 
59 QVariant QgsFieldFormatter::createCache( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const
60 {
61  Q_UNUSED( layer )
62  Q_UNUSED( fieldIndex )
63  Q_UNUSED( config )
64 
65  return QVariant();
66 }
virtual Qt::AlignmentFlag alignmentFlag(QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config) const
Returns the alignment for a particular 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...
QString displayString(const QVariant &v) const
Formats string for display.
Definition: qgsfield.cpp:206
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
QgsFields fields() const FINAL
Returns the list of fields of this layer.
int fieldOriginIndex(int fieldIdx) const
Gets field's origin index (its meaning is specific to each type of origin)
Definition: qgsfields.cpp:197
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.
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.
QgsVectorDataProvider * dataProvider() FINAL
Returns the layer's data provider.
virtual QString defaultValueClause(int fieldIndex) const
Returns any default value clauses which are present at the provider for a specified field index...
Represents a vector layer which manages a vector based data sets.
QVariant::Type type
Definition: qgsfield.h:55