diff options
author | Aaron McCarthy <aaron.mccarthy@nokia.com> | 2012-03-06 11:17:07 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-07 00:02:35 +0100 |
commit | c74bc26605f2337b13f366c2600fff4822d88ffe (patch) | |
tree | 5f7988e5b6784cc05dd9ee0021cdcc726a34cc58 /src/corelib/tools | |
parent | ebb94587f69207d02269d7c20dd963e59629cfc4 (diff) |
Support legacy QDataStream serialization of QDate.
Commit 8327fa7c11f6c84ccc66be4365ee282a76288788 changed the type of the
Julian day member of QDate from quint32 to qint64. This changed the
QDataStream format. Keep the old behavior, with the limited date
range, if the stream version is less than Qt_5_0.
Change-Id: I800448979a1891581069f39de7f9ab9c634e4f0e
Reviewed-by: John Layt <jlayt@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qdatetime.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index 64ad3121d0..fa5eed4f86 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -3511,7 +3511,10 @@ void QDateTime::detach() QDataStream &operator<<(QDataStream &out, const QDate &date) { - return out << (qint64)(date.jd); + if (out.version() < QDataStream::Qt_5_0) + return out << quint32(date.jd); + else + return out << qint64(date.jd); } /*! @@ -3524,9 +3527,16 @@ QDataStream &operator<<(QDataStream &out, const QDate &date) QDataStream &operator>>(QDataStream &in, QDate &date) { - qint64 jd; - in >> jd; - date.jd = jd; + if (in.version() < QDataStream::Qt_5_0) { + quint32 jd; + in >> jd; + date.jd = jd; + } else { + qint64 jd; + in >> jd; + date.jd = jd; + } + return in; } |