diff options
author | John Layt <jlayt@kde.org> | 2012-01-27 20:21:21 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-05 17:50:04 +0100 |
commit | 23457bd6d9d54df2cab505e581e72f9942b0fdbb (patch) | |
tree | becbdb0cce5277c0c1e7d87dfd3efa69347f1986 | |
parent | 29c4a27a94d6f0dc9d91227d99bab7c2f55710db (diff) |
SIC: QLocale: Make QSystemLocale a private class
As discussed on list and approved by Lars and Thiago.
Make QSystemLocale private to give us time and space to change it to a
better implementation.
Change-Id: Ifd806972f3996c43a876f544f78c6557ad71cd75
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
-rw-r--r-- | dist/changes-5.0.0 | 2 | ||||
-rw-r--r-- | src/corelib/tools/qlocale.h | 69 | ||||
-rw-r--r-- | src/corelib/tools/qlocale.qdoc | 1 | ||||
-rw-r--r-- | src/corelib/tools/qlocale_p.h | 68 | ||||
-rw-r--r-- | tests/auto/corelib/tools/qlocale/tst_qlocale.cpp | 40 |
5 files changed, 71 insertions, 109 deletions
diff --git a/dist/changes-5.0.0 b/dist/changes-5.0.0 index 9df39260a6..fc5bebd11d 100644 --- a/dist/changes-5.0.0 +++ b/dist/changes-5.0.0 @@ -198,6 +198,8 @@ information about a particular change. longer take a parameter for base, they will only perform localised base 10 conversions. For converting other bases use the QString methods instead. +- QSystemLocale has been removed from the public API. + **************************************************************************** * General * **************************************************************************** diff --git a/src/corelib/tools/qlocale.h b/src/corelib/tools/qlocale.h index 2255340b67..c029f627b2 100644 --- a/src/corelib/tools/qlocale.h +++ b/src/corelib/tools/qlocale.h @@ -61,71 +61,6 @@ class QTextStreamPrivate; class QLocale; -#ifndef QT_NO_SYSTEMLOCALE -class Q_CORE_EXPORT QSystemLocale -{ -public: - QSystemLocale(); - virtual ~QSystemLocale(); - - struct CurrencyToStringArgument - { - CurrencyToStringArgument() { } - CurrencyToStringArgument(const QVariant &v, const QString &s) - : value(v), symbol(s) { } - QVariant value; - QString symbol; - }; - - enum QueryType { - LanguageId, // uint - CountryId, // uint - DecimalPoint, // QString - GroupSeparator, // QString - ZeroDigit, // QString - NegativeSign, // QString - DateFormatLong, // QString - DateFormatShort, // QString - TimeFormatLong, // QString - TimeFormatShort, // QString - DayNameLong, // QString, in: int - DayNameShort, // QString, in: int - MonthNameLong, // QString, in: int - MonthNameShort, // QString, in: int - DateToStringLong, // QString, in: QDate - DateToStringShort, // QString in: QDate - TimeToStringLong, // QString in: QTime - TimeToStringShort, // QString in: QTime - DateTimeFormatLong, // QString - DateTimeFormatShort, // QString - DateTimeToStringLong, // QString in: QDateTime - DateTimeToStringShort, // QString in: QDateTime - MeasurementSystem, // uint - PositiveSign, // QString - AMText, // QString - PMText, // QString - FirstDayOfWeek, // Qt::DayOfWeek - Weekdays, // QList<Qt::DayOfWeek> - CurrencySymbol, // QString in: CurrencyToStringArgument - CurrencyToString, // QString in: qlonglong, qulonglong or double - UILanguages, // QStringList - StringToStandardQuotation, // QString in: QStringRef to quote - StringToAlternateQuotation, // QString in: QStringRef to quote - ScriptId, // uint - ListToSeparatedString, // QString - LocaleChanged, // system locale changed - NativeLanguageName, // QString - NativeCountryName // QString - }; - virtual QVariant query(QueryType type, QVariant in) const; - virtual QLocale fallbackLocale() const; - -private: - QSystemLocale(bool); - friend QSystemLocale *QSystemLocale_globalSystemLocale(); -}; -#endif - struct QLocalePrivate; class Q_CORE_EXPORT QLocale { @@ -811,10 +746,6 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QLocale &); QT_END_NAMESPACE -#ifndef QT_NO_SYSTEMLOCALE -Q_DECLARE_METATYPE(QSystemLocale::CurrencyToStringArgument) -#endif - QT_END_HEADER #endif // QLOCALE_H diff --git a/src/corelib/tools/qlocale.qdoc b/src/corelib/tools/qlocale.qdoc index 65cdc4d7ff..cc335a4575 100644 --- a/src/corelib/tools/qlocale.qdoc +++ b/src/corelib/tools/qlocale.qdoc @@ -711,6 +711,7 @@ */ /*! + \internal \class QSystemLocale \brief The QSystemLocale class can be used to finetune the system locale of the user. diff --git a/src/corelib/tools/qlocale_p.h b/src/corelib/tools/qlocale_p.h index 849df26c4c..7653f4d93d 100644 --- a/src/corelib/tools/qlocale_p.h +++ b/src/corelib/tools/qlocale_p.h @@ -61,6 +61,71 @@ QT_BEGIN_NAMESPACE +#ifndef QT_NO_SYSTEMLOCALE +class QSystemLocale +{ +public: + QSystemLocale(); + virtual ~QSystemLocale(); + + struct CurrencyToStringArgument + { + CurrencyToStringArgument() { } + CurrencyToStringArgument(const QVariant &v, const QString &s) + : value(v), symbol(s) { } + QVariant value; + QString symbol; + }; + + enum QueryType { + LanguageId, // uint + CountryId, // uint + DecimalPoint, // QString + GroupSeparator, // QString + ZeroDigit, // QString + NegativeSign, // QString + DateFormatLong, // QString + DateFormatShort, // QString + TimeFormatLong, // QString + TimeFormatShort, // QString + DayNameLong, // QString, in: int + DayNameShort, // QString, in: int + MonthNameLong, // QString, in: int + MonthNameShort, // QString, in: int + DateToStringLong, // QString, in: QDate + DateToStringShort, // QString in: QDate + TimeToStringLong, // QString in: QTime + TimeToStringShort, // QString in: QTime + DateTimeFormatLong, // QString + DateTimeFormatShort, // QString + DateTimeToStringLong, // QString in: QDateTime + DateTimeToStringShort, // QString in: QDateTime + MeasurementSystem, // uint + PositiveSign, // QString + AMText, // QString + PMText, // QString + FirstDayOfWeek, // Qt::DayOfWeek + Weekdays, // QList<Qt::DayOfWeek> + CurrencySymbol, // QString in: CurrencyToStringArgument + CurrencyToString, // QString in: qlonglong, qulonglong or double + UILanguages, // QStringList + StringToStandardQuotation, // QString in: QStringRef to quote + StringToAlternateQuotation, // QString in: QStringRef to quote + ScriptId, // uint + ListToSeparatedString, // QString + LocaleChanged, // system locale changed + NativeLanguageName, // QString + NativeCountryName // QString + }; + virtual QVariant query(QueryType type, QVariant in) const; + virtual QLocale fallbackLocale() const; + +private: + QSystemLocale(bool); + friend QSystemLocale *QSystemLocale_globalSystemLocale(); +}; +#endif + struct Q_CORE_EXPORT QLocalePrivate { public: @@ -261,5 +326,8 @@ QT_END_NAMESPACE Q_DECLARE_METATYPE(QStringRef) Q_DECLARE_METATYPE(QList<Qt::DayOfWeek>) +#ifndef QT_NO_SYSTEMLOCALE +Q_DECLARE_METATYPE(QSystemLocale::CurrencyToStringArgument) +#endif #endif // QLOCALE_P_H diff --git a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp index 52f01e8754..5544c0fd71 100644 --- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp +++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp @@ -123,9 +123,6 @@ private slots: void monthName(); void standaloneMonthName(); - // QSystemLocale tests - void queryDateTime(); - void ampm(); void currency(); void quoteString(); @@ -1778,43 +1775,6 @@ a(QLatin1String("0.0000000000000000000000000000000000000000000000000000000000000 QVERIFY(!ok); } -class SystemLocale : public QSystemLocale -{ -public: - virtual QVariant query(QueryType type, QVariant in) const - { - switch (type) { - case DateTimeFormatLong: return QLatin1String("dddd ddd dd d MMMM MMM MM M yyyy hh:mm:ss.zzz"); - case DateTimeFormatShort: return QLatin1String("d M yy h:m"); - case DateTimeToStringLong: - case DateTimeToStringShort: - return in.toDateTime().toString(type == DateTimeToStringShort - ? QLatin1String("dMyyhm") - : QLatin1String("ddMMyyyyhhmmsszzz")); - default: - break; - } - return QSystemLocale::query(type, in); - } -}; - - - -void tst_QLocale::queryDateTime() -{ - SystemLocale loc; - QCOMPARE(QLocale::system().dateTimeFormat(QLocale::LongFormat), - loc.query(QSystemLocale::DateTimeFormatLong, QVariant()).toString()); - QCOMPARE(QLocale::system().dateTimeFormat(QLocale::ShortFormat), - loc.query(QSystemLocale::DateTimeFormatShort, QVariant()).toString()); - QCOMPARE(QLocale::system().toString(QDateTime(QDate(1974, 12, 1), QTime(1, 2, 3, 4)), QLocale::ShortFormat), - QString("1127412")); - QCOMPARE(QLocale::system().toString(QDateTime(QDate(1974, 12, 1), QTime(1, 2, 3, 4)), QLocale::NarrowFormat), - QLocale::system().toString(QDateTime(QDate(1974, 12, 1), QTime(1, 2, 3, 4)), QLocale::ShortFormat)); - QCOMPARE(QLocale::system().toString(QDateTime(QDate(1974, 12, 1), QTime(1, 2, 3, 4)), QLocale::LongFormat), - QString("01121974010203004")); -} - void tst_QLocale::ampm() { QLocale c(QLocale::C); |