1 /* This file is part of the KDE project 2 Copyright (C) 2004-2006 David Faure <faure@kde.org> 3 Copyright (C) 2007 Jan Hambrecht <jaham@gmx.net> 4 Copyright (C) 2007 Thorsten Zachmann <zachmann@kde.org> 5 6 This library is free software; you can redistribute it and/or 7 modify it under the terms of the GNU Library General Public 8 License version 2 as published by the Free Software Foundation. 9 10 This library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Library General Public License for more details. 14 15 You should have received a copy of the GNU Library General Public License 16 along with this library; see the file COPYING.LIB. If not, write to 17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 */ 20 21 #ifndef KOODFNUMBERSTYLES_H 22 #define KOODFNUMBERSTYLES_H 23 24 #include "kritaodf_export.h" 25 #include "KoXmlReaderForward.h" 26 27 #include <QPair> 28 #include <QString> 29 #include <QList> 30 31 class KoGenStyles; 32 class KoGenStyle; 33 34 /** 35 * Loading and saving of number styles 36 */ 37 namespace KoOdfNumberStyles 38 { 39 enum Format { 40 Number, 41 Scientific, 42 Fraction, 43 Currency, 44 Percentage, 45 Date, 46 Time, 47 Boolean, 48 Text 49 }; 50 /// Prefix and suffix are always included into formatStr. Having them as separate fields simply 51 /// allows to extract them from formatStr, to display them in separate widgets. 52 struct NumericStyleFormat { 53 QString formatStr; 54 QString prefix; 55 QString suffix; 56 Format type; 57 int precision; 58 QString currencySymbol; 59 bool thousandsSep; 60 QList<QPair<QString,QString> > styleMaps; // conditional formatting, first=condition, second=applyStyleName NumericStyleFormatNumericStyleFormat61 NumericStyleFormat() : type(Text), precision(-1), thousandsSep(false) {} 62 }; 63 64 KRITAODF_EXPORT QString format(const QString &value, const NumericStyleFormat &format); 65 66 KRITAODF_EXPORT QString formatNumber(qreal value, const QString &format, int precision = -1); 67 KRITAODF_EXPORT QString formatBoolean(const QString &value, const QString &format); 68 KRITAODF_EXPORT QString formatDate(int value, const QString &format); 69 KRITAODF_EXPORT QString formatTime(qreal value, const QString &format); 70 KRITAODF_EXPORT QString formatCurrency(qreal value, const QString &format, const QString& currencySymbol, int precision = -1); 71 KRITAODF_EXPORT QString formatScientific(qreal value, const QString &format, int precision = -1); 72 KRITAODF_EXPORT QString formatFraction(qreal value, const QString &format); 73 KRITAODF_EXPORT QString formatPercent(const QString &value, const QString &format, int precision = -1); 74 75 KRITAODF_EXPORT QPair<QString, NumericStyleFormat> loadOdfNumberStyle(const KoXmlElement &parent); 76 KRITAODF_EXPORT QString saveOdfNumberStyle(KoGenStyles &mainStyles, const NumericStyleFormat &format); 77 78 KRITAODF_EXPORT QString saveOdfDateStyle(KoGenStyles &mainStyles, const QString &format, bool localeFormat, const QString &prefix = QString(), const QString &suffix = QString()); 79 KRITAODF_EXPORT QString saveOdfTimeStyle(KoGenStyles &mainStyles, const QString &format, bool localeFormat, const QString &prefix = QString(), const QString &suffix = QString()); 80 KRITAODF_EXPORT QString saveOdfFractionStyle(KoGenStyles &mainStyles, const QString &format, const QString &prefix = QString(), const QString &suffix = QString()); 81 KRITAODF_EXPORT QString saveOdfScientificStyle(KoGenStyles &mainStyles, const QString &format, const QString &prefix = QString(), const QString &suffix = QString(), bool thousandsSep = false); 82 KRITAODF_EXPORT QString saveOdfNumberStyle(KoGenStyles &mainStyles, const QString &format, const QString &prefix = QString(), const QString &suffix = QString(), bool thousandsSep = false); 83 KRITAODF_EXPORT QString saveOdfBooleanStyle(KoGenStyles &mainStyles, const QString &format, const QString &prefix = QString(), const QString &suffix = QString()); 84 KRITAODF_EXPORT QString saveOdfPercentageStyle(KoGenStyles &mainStyles, const QString &format, const QString &prefix = QString(), const QString &suffix = QString()); 85 KRITAODF_EXPORT QString saveOdfCurrencyStyle(KoGenStyles &mainStyles, const QString &format, const QString &symbol, const QString &prefix = QString(), const QString &suffix = QString()); 86 KRITAODF_EXPORT QString saveOdfTextStyle(KoGenStyles &mainStyles, const QString &format, const QString &prefix = QString(), const QString &suffix = QString()); 87 } 88 89 #endif // KOODFNUMBERSTYLES_H 90