QGIS API Documentation
4.3.0-Master (4ecdf0f3f59)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
qgsfieldformatterregistry.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsfieldformatterregistry.cpp - QgsFieldFormatterRegistry
3
4
---------------------
5
begin : 2.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
17
#include "
qgsfieldformatterregistry.h
"
18
19
#include "
qgscheckboxfieldformatter.h
"
20
#include "
qgsdatetimefieldformatter.h
"
21
#include "
qgsenumerationfieldformatter.h
"
22
#include "
qgsfallbackfieldformatter.h
"
23
#include "
qgsfieldformatter.h
"
24
#include "
qgskeyvaluefieldformatter.h
"
25
#include "
qgslistfieldformatter.h
"
26
#include "
qgsrangefieldformatter.h
"
27
#include "
qgsreadwritelocker.h
"
28
#include "
qgsrelationreferencefieldformatter.h
"
29
#include "
qgsvaluemapfieldformatter.h
"
30
#include "
qgsvaluerelationfieldformatter.h
"
31
32
#include "moc_qgsfieldformatterregistry.cpp"
33
34
QgsFieldFormatterRegistry::QgsFieldFormatterRegistry
( QObject *parent )
35
: QObject( parent )
36
{
37
addFieldFormatter
(
new
QgsValueRelationFieldFormatter
() );
38
addFieldFormatter
(
new
QgsValueMapFieldFormatter
() );
39
addFieldFormatter
(
new
QgsRelationReferenceFieldFormatter
() );
40
addFieldFormatter
(
new
QgsKeyValueFieldFormatter
() );
41
addFieldFormatter
(
new
QgsListFieldFormatter
() );
42
addFieldFormatter
(
new
QgsDateTimeFieldFormatter
() );
43
addFieldFormatter
(
new
QgsRangeFieldFormatter
() );
44
addFieldFormatter
(
new
QgsCheckBoxFieldFormatter
() );
45
addFieldFormatter
(
new
QgsEnumerationFieldFormatter
() );
46
47
mFallbackFieldFormatter = std::make_unique<QgsFallbackFieldFormatter>();
48
}
49
50
QgsFieldFormatterRegistry::~QgsFieldFormatterRegistry
()
51
{
52
const
QgsReadWriteLocker
locker( mLock,
QgsReadWriteLocker::Write
);
53
qDeleteAll( mFieldFormatters );
54
}
55
56
void
QgsFieldFormatterRegistry::addFieldFormatter
(
QgsFieldFormatter
*formatter )
57
{
58
QgsReadWriteLocker
locker( mLock,
QgsReadWriteLocker::Write
);
59
mFieldFormatters.insert( formatter->
id
(), formatter );
60
locker.
unlock
();
61
emit
fieldFormatterAdded
( formatter );
62
}
63
64
void
QgsFieldFormatterRegistry::removeFieldFormatter
(
QgsFieldFormatter
*formatter )
65
{
66
removeFieldFormatter
( formatter->
id
() );
67
}
68
69
void
QgsFieldFormatterRegistry::removeFieldFormatter
(
const
QString &
id
)
70
{
71
const
QgsReadWriteLocker
locker( mLock,
QgsReadWriteLocker::Write
);
72
if
(
QgsFieldFormatter
*formatter = mFieldFormatters.take(
id
) )
73
{
74
emit
fieldFormatterRemoved
( formatter );
75
delete
formatter;
76
}
77
}
78
79
QgsFieldFormatter
*
QgsFieldFormatterRegistry::fieldFormatter
(
const
QString &
id
)
const
80
{
81
const
QgsReadWriteLocker
locker( mLock,
QgsReadWriteLocker::Read
);
82
return
mFieldFormatters.value(
id
, mFallbackFieldFormatter.get() );
83
}
84
85
QgsFieldFormatter
*
QgsFieldFormatterRegistry::fallbackFieldFormatter
()
const
86
{
87
return
mFallbackFieldFormatter.get();
88
}
QgsCheckBoxFieldFormatter
Field formatter for a checkbox field.
Definition
qgscheckboxfieldformatter.h:29
QgsDateTimeFieldFormatter
Field formatter for a date time field.
Definition
qgsdatetimefieldformatter.h:31
QgsEnumerationFieldFormatter
Field formatter for an Enumeration field.
Definition
qgsenumerationfieldformatter.h:34
QgsFieldFormatterRegistry::fieldFormatterRemoved
void fieldFormatterRemoved(QgsFieldFormatter *formatter)
Will be emitted just before a field formatter is removed and deleted.
QgsFieldFormatterRegistry::fallbackFieldFormatter
QgsFieldFormatter * fallbackFieldFormatter() const
Returns a basic fallback field formatter which can be used to represent any field in an unspectacular...
Definition
qgsfieldformatterregistry.cpp:85
QgsFieldFormatterRegistry::fieldFormatterAdded
void fieldFormatterAdded(QgsFieldFormatter *formatter)
Will be emitted after a new field formatter has been added.
QgsFieldFormatterRegistry::removeFieldFormatter
void removeFieldFormatter(QgsFieldFormatter *formatter)
Remove a field formatter from the registry.
Definition
qgsfieldformatterregistry.cpp:64
QgsFieldFormatterRegistry::QgsFieldFormatterRegistry
QgsFieldFormatterRegistry(QObject *parent=nullptr)
You should not normally need to create your own field formatter registry.
Definition
qgsfieldformatterregistry.cpp:34
QgsFieldFormatterRegistry::addFieldFormatter
void addFieldFormatter(QgsFieldFormatter *formatter)
They will take precedence in order of adding them.
Definition
qgsfieldformatterregistry.cpp:56
QgsFieldFormatterRegistry::fieldFormatter
QgsFieldFormatter * fieldFormatter(const QString &id) const
Gets a field formatter by its id.
Definition
qgsfieldformatterregistry.cpp:79
QgsFieldFormatterRegistry::~QgsFieldFormatterRegistry
~QgsFieldFormatterRegistry() override
Definition
qgsfieldformatterregistry.cpp:50
QgsFieldFormatter
A field formatter helps to handle and display values for a field.
Definition
qgsfieldformatter.h:68
QgsFieldFormatter::id
virtual QString id() const =0
Returns a unique id for this field formatter.
QgsKeyValueFieldFormatter
Field formatter for a key value field.
Definition
qgskeyvaluefieldformatter.h:34
QgsListFieldFormatter
Field formatter for a list field.
Definition
qgslistfieldformatter.h:31
QgsRangeFieldFormatter
Field formatter for a range (double) field with precision and locale.
Definition
qgsrangefieldformatter.h:28
QgsReadWriteLocker
A convenience class that simplifies locking and unlocking QReadWriteLocks.
Definition
qgsreadwritelocker.h:41
QgsReadWriteLocker::Write
@ Write
Lock for write.
Definition
qgsreadwritelocker.h:49
QgsReadWriteLocker::Read
@ Read
Lock for read.
Definition
qgsreadwritelocker.h:48
QgsReadWriteLocker::unlock
void unlock()
Unlocks the lock.
Definition
qgsreadwritelocker.cpp:45
QgsRelationReferenceFieldFormatter
Field formatter for a relation reference field.
Definition
qgsrelationreferencefieldformatter.h:31
QgsValueMapFieldFormatter
Field formatter for a ValueMap field.
Definition
qgsvaluemapfieldformatter.h:42
QgsValueRelationFieldFormatter
Field formatter for a value relation field.
Definition
qgsvaluerelationfieldformatter.h:38
qgscheckboxfieldformatter.h
qgsdatetimefieldformatter.h
qgsenumerationfieldformatter.h
qgsfallbackfieldformatter.h
qgsfieldformatter.h
qgsfieldformatterregistry.h
qgskeyvaluefieldformatter.h
qgslistfieldformatter.h
qgsrangefieldformatter.h
qgsreadwritelocker.h
qgsrelationreferencefieldformatter.h
qgsvaluemapfieldformatter.h
qgsvaluerelationfieldformatter.h
Generated on
for QGIS API Documentation by
1.17.0