-
-
Notifications
You must be signed in to change notification settings - Fork 3k
/
qgsfieldformatter.cpp
71 lines (59 loc) · 2.39 KB
/
qgsfieldformatter.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/***************************************************************************
qgsfieldformatter.cpp - QgsFieldFormatter
---------------------
begin : 2.12.2016
copyright : (C) 2016 by Matthias Kuhn
email : matthias@opengis.ch
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include "qgsfieldformatter.h"
#include "qgsfield.h"
#include "qgsfields.h"
#include "qgsvectorlayer.h"
#include "qgsvectordataprovider.h"
QString QgsFieldFormatter::representValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const
{
Q_UNUSED( config )
Q_UNUSED( cache )
QString defVal;
if ( layer->fields().fieldOrigin( fieldIndex ) == QgsFields::OriginProvider && layer->dataProvider() )
defVal = layer->dataProvider()->defaultValueClause( layer->fields().fieldOriginIndex( fieldIndex ) );
if ( ! layer->fields().exists( fieldIndex ) )
{
return defVal;
}
else
{
return layer->fields().at( fieldIndex ).displayString( value.isNull() ? defVal : value );
}
}
QVariant QgsFieldFormatter::sortValue( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config, const QVariant &cache, const QVariant &value ) const
{
Q_UNUSED( layer )
Q_UNUSED( fieldIndex )
Q_UNUSED( config )
Q_UNUSED( cache )
return value;
}
Qt::AlignmentFlag QgsFieldFormatter::alignmentFlag( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const
{
Q_UNUSED( config )
QgsField field = layer->fields().at( fieldIndex );
if ( field.isNumeric() || field.isDateOrTime() )
return Qt::AlignRight;
else
return Qt::AlignLeft;
}
QVariant QgsFieldFormatter::createCache( QgsVectorLayer *layer, int fieldIndex, const QVariantMap &config ) const
{
Q_UNUSED( layer )
Q_UNUSED( fieldIndex )
Q_UNUSED( config )
return QVariant();
}