Support legacy QDataStream serialization of QDate.
Commit 8327fa7c11 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>
bb10
parent
ebb94587f6
commit
c74bc26605
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue