Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsnumericformat.cpp 3 : : ------------------- 4 : : begin : January 2020 5 : : copyright : (C) 2020 by Nyall Dawson 6 : : email : nyall dot dawson at gmail dot com 7 : : 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 "qgsnumericformat.h" 18 : : #include "qgsxmlutils.h" 19 : : #include "qgsreadwritecontext.h" 20 : : 21 : : #include <QLocale> 22 : : 23 : 0 : QgsNumericFormatContext::QgsNumericFormatContext() 24 : : { 25 : 0 : QLocale l; 26 : : #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 27 : 0 : mThousandsSep = l.groupSeparator(); 28 : 0 : mDecimalSep = l.decimalPoint(); 29 : 0 : mPercent = l.percent(); 30 : 0 : mZeroDigit = l.zeroDigit(); 31 : 0 : mNegativeSign = l.negativeSign(); 32 : 0 : mPositiveSign = l.positiveSign(); 33 : 0 : mExponential = l.exponential(); 34 : : #else 35 : : // With Qt6, these methods return strings to be prepared 36 : : // for utf-16 surrogates 37 : : // Do we care? If yes, we need to switch all members of QgsNumericFormatContext to QString 38 : : mThousandsSep = l.groupSeparator().at( 0 ); 39 : : mDecimalSep = l.decimalPoint().at( 0 ); 40 : : mPercent = l.percent().at( 0 ); 41 : : mZeroDigit = l.zeroDigit().at( 0 ); 42 : : mNegativeSign = l.negativeSign().at( 0 ); 43 : : mPositiveSign = l.positiveSign().at( 0 ); 44 : : mExponential = l.exponential().at( 0 ); 45 : : #endif 46 : 0 : } 47 : : 48 : 0 : int QgsNumericFormat::sortKey() 49 : : { 50 : 0 : return 100; 51 : : } 52 : : 53 : 0 : double QgsNumericFormat::suggestSampleValue() const 54 : : { 55 : 0 : return 1234.56789123456; 56 : : } 57 : : 58 : 0 : void QgsNumericFormat::writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const 59 : : { 60 : 0 : const QVariantMap config = configuration( context ); 61 : 0 : QDomElement configElement = QgsXmlUtils::writeVariant( config, document ); 62 : 0 : element.appendChild( configElement ); 63 : 0 : element.setAttribute( QStringLiteral( "id" ), id() ); 64 : 0 : } 65 : : 66 : 0 : bool QgsNumericFormat::operator==( const QgsNumericFormat &other ) const 67 : : { 68 : 0 : return id() == other.id() && configuration( QgsReadWriteContext() ) == other.configuration( QgsReadWriteContext() ); 69 : 0 : } 70 : : 71 : 0 : bool QgsNumericFormat::operator!=( const QgsNumericFormat &other ) const 72 : : { 73 : 0 : return !operator==( other ); 74 : : } 75 : :