QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsbasicnumericformat.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsbasicnumericformat.h
3 --------------------------
4 begin : January 2020
5 copyright : (C) 2020 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15#ifndef QGSBASICNUMERICFORMAT_H
16#define QGSBASICNUMERICFORMAT_H
17
18#include "qgis_core.h"
19#include "qgis_sip.h"
20#include "qgsnumericformat.h"
21#include <sstream>
22#include <iostream>
23#include <memory>
24
31class CORE_EXPORT QgsBasicNumericFormat : public QgsNumericFormat
32{
33 public:
34
39 {
42 };
43
48
49 QString id() const override;
50 QString visibleName() const override;
51 int sortKey() override;
52 QString formatDouble( double value, const QgsNumericFormatContext &context ) const override;
53 QgsNumericFormat *clone() const override SIP_FACTORY;
54 QgsNumericFormat *create( const QVariantMap &configuration, const QgsReadWriteContext &context ) const override SIP_FACTORY;
55 QVariantMap configuration( const QgsReadWriteContext &context ) const override;
56
63 int numberDecimalPlaces() const;
64
71 virtual void setNumberDecimalPlaces( int places );
72
77 bool showThousandsSeparator() const;
78
83 void setShowThousandsSeparator( bool show );
84
89 bool showPlusSign() const;
90
95 void setShowPlusSign( bool show );
96
104 bool showTrailingZeros() const;
105
113 void setShowTrailingZeros( bool show );
114
120 RoundingType roundingType() const;
121
127 void setRoundingType( RoundingType type );
128
135 QChar thousandsSeparator() const;
136
143 void setThousandsSeparator( QChar character );
144
151 QChar decimalSeparator() const;
152
159 void setDecimalSeparator( QChar character );
160
161 protected:
162
166 virtual void setConfiguration( const QVariantMap &configuration, const QgsReadWriteContext &context );
167
168 bool mUseScientific = false;
169
170 private:
171
172 int mNumberDecimalPlaces = 6;
173 bool mShowThousandsSeparator = true;
174 bool mShowPlusSign = false;
175 bool mShowTrailingZeros = false;
176
177 RoundingType mRoundingType = DecimalPlaces;
178
179 QChar mThousandsSeparator;
180 QChar mDecimalSeparator;
181};
182
183#endif // QGSBASICNUMERICFORMAT_H
A numeric formatter which returns a simple text representation of a value.
RoundingType
Sets rounding type and behavior of the numberDecimalPlaces() setting.
@ DecimalPlaces
Maximum number of decimal places.
@ SignificantFigures
Maximum number of significant figures.
A context for numeric formats.
A numeric formatter allows for formatting a numeric value for display, using a variety of different f...
virtual QString formatDouble(double value, const QgsNumericFormatContext &context) const =0
Returns a formatted string representation of a numeric double value.
virtual QgsNumericFormat * clone() const =0
Clones the format, returning a new object.
virtual int sortKey()
Returns a sorting key value, where formats with a lower sort key will be shown earlier in lists.
virtual QString visibleName() const =0
Returns the translated, user-visible name for this format.
virtual QString id() const =0
Returns a unique id for this numeric format.
The class is used as a container of context for various read/write operations on other objects.
#define SIP_FACTORY
Definition: qgis_sip.h:76