diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-09-25 14:02:04 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-09-25 14:02:04 +0200 |
commit | a1ad9a74ebb3c556c5f70f7e03be68b09598ac53 (patch) | |
tree | 615a96db418219a57a745a5899e39a9ac90744ec /src/corelib/io/qsettings.cpp | |
parent | 6d78b7a0c46ea04f4bb771d960e2f7dff1362341 (diff) | |
parent | 462f355e4fb16cc7a1838fa2dda0f763eee58c84 (diff) |
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
src/corelib/io/io.pri
src/corelib/io/qdatastream.cpp
src/corelib/io/qdatastream.h
src/network/socket/qabstractsocket.cpp
src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
src/plugins/platforms/cocoa/qcocoaaccessibilityelement.h
src/widgets/styles/qgtkstyle.cpp
tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/qmimedatabase-cache.pro
tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/qmimedatabase-xml.pro
tests/auto/dbus/qdbusconnection/qdbusconnection.pro
tests/auto/dbus/qdbuspendingcall/tst_qdbuspendingcall.cpp
tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
Change-Id: I347549a024eb5bfa986699e0a11f96cc55c797a7
Diffstat (limited to 'src/corelib/io/qsettings.cpp')
-rw-r--r-- | src/corelib/io/qsettings.cpp | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp index d4143c4035..654d688c53 100644 --- a/src/corelib/io/qsettings.cpp +++ b/src/corelib/io/qsettings.cpp @@ -453,14 +453,23 @@ QString QSettingsPrivate::variantToString(const QVariant &v) default: { #ifndef QT_NO_DATASTREAM + QDataStream::Version version; + const char *typeSpec; + if (v.type() == QVariant::DateTime) { + version = QDataStream::Qt_5_6; + typeSpec = "@DateTime("; + } else { + version = QDataStream::Qt_4_0; + typeSpec = "@Variant("; + } QByteArray a; { QDataStream s(&a, QIODevice::WriteOnly); - s.setVersion(QDataStream::Qt_4_0); + s.setVersion(version); s << v; } - result = QLatin1String("@Variant("); + result = QLatin1String(typeSpec); result += QString::fromLatin1(a.constData(), a.size()); result += QLatin1Char(')'); #else @@ -480,11 +489,21 @@ QVariant QSettingsPrivate::stringToVariant(const QString &s) if (s.endsWith(QLatin1Char(')'))) { if (s.startsWith(QLatin1String("@ByteArray("))) { return QVariant(s.toLatin1().mid(11, s.size() - 12)); - } else if (s.startsWith(QLatin1String("@Variant("))) { + } else if (s.startsWith(QLatin1String("@Variant(")) + || s.startsWith(QLatin1String("@DateTime("))) { #ifndef QT_NO_DATASTREAM - QByteArray a(s.toLatin1().mid(9)); + QDataStream::Version version; + int offset; + if (s.at(1) == QLatin1Char('D')) { + version = QDataStream::Qt_5_6; + offset = 10; + } else { + version = QDataStream::Qt_4_0; + offset = 9; + } + QByteArray a(s.toLatin1().mid(offset)); QDataStream stream(&a, QIODevice::ReadOnly); - stream.setVersion(QDataStream::Qt_4_0); + stream.setVersion(version); QVariant result; stream >> result; return result; |