diff options
| author | Liang Qi <liang.qi@qt.io> | 2017-06-19 13:25:11 +0200 |
|---|---|---|
| committer | Liang Qi <liang.qi@qt.io> | 2017-06-19 16:12:34 +0200 |
| commit | ce09ef431373f45d14ce0a6e7de24aee3666093d (patch) | |
| tree | 7c998b21f02db55e233e7eeb1599663f1c6b51ca /src/corelib/tools/qtimezone.cpp | |
| parent | 7ad55ca65f42351e231f31f7a9253ae6eaf1ebb3 (diff) | |
| parent | 97eec16e4ff6367c233f8ea6c4a343c286c3a514 (diff) | |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
src/corelib/io/qprocess_unix.cpp
src/corelib/io/qprocess_win.cpp
src/plugins/platforms/android/qandroidplatformintegration.h
src/plugins/platforms/windows/qwindowscontext.cpp
src/plugins/platforms/windows/windows.pri
src/tools/uic/cpp/cppwriteinitialization.cpp
src/widgets/doc/src/widgets-and-layouts/gallery.qdoc
Change-Id: I8d0834c77f350ea7540140c2c7f372814afc2d0f
Diffstat (limited to 'src/corelib/tools/qtimezone.cpp')
| -rw-r--r-- | src/corelib/tools/qtimezone.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/corelib/tools/qtimezone.cpp b/src/corelib/tools/qtimezone.cpp index 0b331be5037..6a26993549f 100644 --- a/src/corelib/tools/qtimezone.cpp +++ b/src/corelib/tools/qtimezone.cpp @@ -958,7 +958,13 @@ QDataStream &operator>>(QDataStream &ds, QTimeZone &tz) int country; QString comment; ds >> ianaId >> utcOffset >> name >> abbreviation >> country >> comment; - tz = QTimeZone(ianaId.toUtf8(), utcOffset, name, abbreviation, (QLocale::Country) country, comment); + // Try creating as a system timezone, which succeeds (producing a valid + // zone) iff ianaId is valid; we can then ignore the other data. + tz = QTimeZone(ianaId.toUtf8()); + // If not, then construct a custom timezone using all the saved values: + if (!tz.isValid()) + tz = QTimeZone(ianaId.toUtf8(), utcOffset, name, abbreviation, + QLocale::Country(country), comment); } else { tz = QTimeZone(ianaId.toUtf8()); } |
