From: John Layt Date: Fri, 27 Jan 2012 20:21:21 +0000 (+0000) Subject: SIC: QLocale: Make QSystemLocale a private class X-Git-Tag: qt-v5.0.0-alpha1~1318 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=23457bd6d9d54df2cab505e581e72f9942b0fdbb;p=profile%2Fivi%2Fqtbase.git 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 --- diff --git a/dist/changes-5.0.0 b/dist/changes-5.0.0 index 9df3926..fc5bebd 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 2255340..c029f62 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 - 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 65cdc4d..cc335a4 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 849df26..7653f4d 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 + 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) +#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 52f01e8..5544c0f 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);