File indexing completed on 2024-04-21 14:55:33

0001 /*
0002     Copyright 2010 John Layt <john@layt.net>
0003 
0004     This library is free software; you can redistribute it and/or
0005     modify it under the terms of the GNU Library General Public
0006     License as published by the Free Software Foundation; either
0007     version 2 of the License, or (at your option) any later version.
0008 
0009     This library is distributed in the hope that it will be useful,
0010     but WITHOUT ANY WARRANTY; without even the implied warranty of
0011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012     Library General Public License for more details.
0013 
0014     You should have received a copy of the GNU Library General Public License
0015     along with this library; see the file COPYING.LIB.  If not, write to
0016     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017     Boston, MA 02110-1301, USA.
0018 */
0019 
0020 #ifndef KDATETIMEFORMATTER_H
0021 #define KDATETIMEFORMATTER_H
0022 
0023 #include "klocale.h"
0024 
0025 class QChar;
0026 class QString;
0027 class QDate;
0028 class QTime;
0029 
0030 class KDateTime;
0031 class KCalendarSystem;
0032 
0033 class KDateTimeFormatter
0034 {
0035 public:
0036     KDELIBS4SUPPORT_DEPRECATED explicit KDateTimeFormatter();
0037 
0038     virtual ~KDateTimeFormatter();
0039 
0040     virtual QString formatDate(const QDate &fromDate,
0041                                const QString &toFormat,
0042                                const KCalendarSystem *calendar  = KLocale::global()->calendar(),
0043                                const KLocale *locale = KLocale::global(),
0044                                KLocale::DigitSet digitSet = KLocale::global()->dateTimeDigitSet(),
0045                                KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat) const;
0046 
0047     virtual QString formatTime(const QTime &fromTime,
0048                                const QString &toFormat,
0049                                KLocale::TimeFormatOptions timeOptions = KLocale::TimeDefault,
0050                                const KCalendarSystem *calendar  = KLocale::global()->calendar(),
0051                                const KLocale *locale = KLocale::global(),
0052                                KLocale::DigitSet digitSet = KLocale::global()->dateTimeDigitSet(),
0053                                KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat) const;
0054 
0055     virtual QString formatDateTime(const KDateTime &fromDateTime,
0056                                    const QString &toFormat,
0057                                    KLocale::TimeFormatOptions timeOptions = KLocale::TimeDefault,
0058                                    const KCalendarSystem *calendar  = KLocale::global()->calendar(),
0059                                    const KLocale *locale = KLocale::global(),
0060                                    KLocale::DigitSet digitSet = KLocale::global()->dateTimeDigitSet(),
0061                                    KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat) const;
0062 
0063 private:
0064     virtual QString formatDateTimePosix(const KDateTime &fromDateTime,
0065                                         const QString &toFormat,
0066                                         KLocale::TimeFormatOptions timeOptions,
0067                                         const KCalendarSystem *calendar,
0068                                         const KLocale *locale,
0069                                         KLocale::DigitSet digitSet,
0070                                         KLocale::DateTimeFormatStandard standard) const;
0071 
0072     virtual void initEnglish(const KCalendarSystem *calendar, const KLocale *locale) const;
0073 
0074     virtual QString formatDateTimeUnicode(const KDateTime &fromDateTime,
0075                                           const QString &toFormat,
0076                                           KLocale::TimeFormatOptions timeOptions,
0077                                           const KCalendarSystem *calendar,
0078                                           const KLocale *locale,
0079                                           KLocale::DigitSet digitSet) const;
0080 
0081     virtual QString getUnicodeString(const KDateTime &fromDateTime,
0082                                      const QString &toFormat,
0083                                      KLocale::TimeFormatOptions timeOptions,
0084                                      const KCalendarSystem *calendar,
0085                                      const KLocale *locale,
0086                                      KLocale::DigitSet digitSet) const;
0087 
0088     virtual QString stringFromInteger(int number, int padWidth, QChar padChar, QChar signChar,
0089                                       KLocale::DigitSet digitSet, const KLocale *locale) const;
0090 
0091     // Is private class, but if ever made public need to move these into a d->
0092     // Some format modifiers force English names to be returned
0093     mutable KLocale *m_englishLocale;
0094     mutable KCalendarSystem *m_englishCalendar;
0095 };
0096 
0097 #endif // KDATETIMEFORMATTER_H