QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
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 
31 class 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 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.
virtual QgsNumericFormat * clone() const =0
Clones the format, returning a new object.
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