diff options
-rw-r--r-- | src/corelib/tools/qlocale_win.cpp | 12 | ||||
-rw-r--r-- | tests/auto/corelib/tools/qdate/tst_qdate.cpp | 8 | ||||
-rw-r--r-- | tests/auto/corelib/tools/qtime/tst_qtime.cpp | 16 |
3 files changed, 28 insertions, 8 deletions
diff --git a/src/corelib/tools/qlocale_win.cpp b/src/corelib/tools/qlocale_win.cpp index 0730002ca3..3a083582c9 100644 --- a/src/corelib/tools/qlocale_win.cpp +++ b/src/corelib/tools/qlocale_win.cpp @@ -82,6 +82,9 @@ static QString winIso3116CtryName(LCID id = LOCALE_USER_DEFAULT); #ifndef LOCALE_SNATIVECOUNTRYNAME # define LOCALE_SNATIVECOUNTRYNAME 0x00000008 #endif +#ifndef LOCALE_SSHORTTIME +# define LOCALE_SSHORTTIME 0x00000079 +#endif struct QSystemLocalePrivate { @@ -258,7 +261,9 @@ QVariant QSystemLocalePrivate::timeFormat(QLocale::FormatType type) { switch (type) { case QLocale::ShortFormat: - return winToQtFormat(getLocaleInfo(LOCALE_STIMEFORMAT)); //### + if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) + return winToQtFormat(getLocaleInfo(LOCALE_SSHORTTIME)); + // fall through case QLocale::LongFormat: return winToQtFormat(getLocaleInfo(LOCALE_STIMEFORMAT)); case QLocale::NarrowFormat: @@ -341,7 +346,7 @@ QVariant QSystemLocalePrivate::toString(const QDate &date, QLocale::FormatType t return QString(); } -QVariant QSystemLocalePrivate::toString(const QTime &time, QLocale::FormatType) +QVariant QSystemLocalePrivate::toString(const QTime &time, QLocale::FormatType type) { SYSTEMTIME st; memset(&st, 0, sizeof(SYSTEMTIME)); @@ -351,6 +356,9 @@ QVariant QSystemLocalePrivate::toString(const QTime &time, QLocale::FormatType) st.wMilliseconds = 0; DWORD flags = 0; + // keep the same conditional as timeFormat() above + if (type == QLocale::ShortFormat && QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) + flags = TIME_NOSECONDS; wchar_t buf[255]; if (GetTimeFormat(lcid, flags, &st, NULL, buf, 255)) { diff --git a/tests/auto/corelib/tools/qdate/tst_qdate.cpp b/tests/auto/corelib/tools/qdate/tst_qdate.cpp index 728a4244a1..b91de092e8 100644 --- a/tests/auto/corelib/tools/qdate/tst_qdate.cpp +++ b/tests/auto/corelib/tools/qdate/tst_qdate.cpp @@ -1137,10 +1137,14 @@ void tst_QDate::toStringDateFormat() QFETCH(QString, expectedStr); QCOMPARE(date.toString(Qt::SystemLocaleShortDate), QLocale::system().toString(date, QLocale::ShortFormat)); - QCOMPARE(date.toString(Qt::LocaleDate), QLocale().toString(date, QLocale::ShortFormat)); + QCOMPARE(date.toString(Qt::DefaultLocaleShortDate), QLocale().toString(date, QLocale::ShortFormat)); + QCOMPARE(date.toString(Qt::SystemLocaleLongDate), QLocale::system().toString(date, QLocale::LongFormat)); + QCOMPARE(date.toString(Qt::DefaultLocaleLongDate), QLocale().toString(date, QLocale::LongFormat)); QLocale::setDefault(QLocale::German); QCOMPARE(date.toString(Qt::SystemLocaleShortDate), QLocale::system().toString(date, QLocale::ShortFormat)); - QCOMPARE(date.toString(Qt::LocaleDate), QLocale().toString(date, QLocale::ShortFormat)); + QCOMPARE(date.toString(Qt::DefaultLocaleShortDate), QLocale().toString(date, QLocale::ShortFormat)); + QCOMPARE(date.toString(Qt::SystemLocaleLongDate), QLocale::system().toString(date, QLocale::LongFormat)); + QCOMPARE(date.toString(Qt::DefaultLocaleLongDate), QLocale().toString(date, QLocale::LongFormat)); QCOMPARE(date.toString(format), expectedStr); } diff --git a/tests/auto/corelib/tools/qtime/tst_qtime.cpp b/tests/auto/corelib/tools/qtime/tst_qtime.cpp index 0563111abb..4bd29da056 100644 --- a/tests/auto/corelib/tools/qtime/tst_qtime.cpp +++ b/tests/auto/corelib/tools/qtime/tst_qtime.cpp @@ -723,15 +723,23 @@ void tst_QTime::toStringFormat() void tst_QTime::toStringLocale() { QTime time(18, 30); - QCOMPARE(time.toString(Qt::SystemLocaleDate), + QCOMPARE(time.toString(Qt::SystemLocaleShortDate), QLocale::system().toString(time, QLocale::ShortFormat)); - QCOMPARE(time.toString(Qt::LocaleDate), + QCOMPARE(time.toString(Qt::DefaultLocaleShortDate), QLocale().toString(time, QLocale::ShortFormat)); + QCOMPARE(time.toString(Qt::SystemLocaleLongDate), + QLocale::system().toString(time, QLocale::LongFormat)); + QCOMPARE(time.toString(Qt::DefaultLocaleLongDate), + QLocale().toString(time, QLocale::LongFormat)); QLocale::setDefault(QLocale::German); - QCOMPARE(time.toString(Qt::SystemLocaleDate), + QCOMPARE(time.toString(Qt::SystemLocaleShortDate), QLocale::system().toString(time, QLocale::ShortFormat)); - QCOMPARE(time.toString(Qt::LocaleDate), + QCOMPARE(time.toString(Qt::DefaultLocaleShortDate), QLocale().toString(time, QLocale::ShortFormat)); + QCOMPARE(time.toString(Qt::SystemLocaleLongDate), + QLocale::system().toString(time, QLocale::LongFormat)); + QCOMPARE(time.toString(Qt::DefaultLocaleLongDate), + QLocale().toString(time, QLocale::LongFormat)); } void tst_QTime::msecsSinceStartOfDay_data() |