diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2018-01-24 11:41:37 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2018-03-02 04:06:24 +0000 |
commit | a2ffb35ac2354735a95b21557a762aa16d7140a3 (patch) | |
tree | b70527988af456aecc6d64cec0ecbcdb7ecb61cf /src | |
parent | 1c2499cbf141d7b07feef0b6a7ecda2b69fcc219 (diff) |
QJsonValue: use the fully-encoded form of a URL in fromVariant()
For compatibility with other parsers that may expect it to be so.
Change-Id: I56b444f9d6274221a3b7fffd150cd66390f98fd5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/serialization/qjsonvalue.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/corelib/serialization/qjsonvalue.cpp b/src/corelib/serialization/qjsonvalue.cpp index 33707b6ec3..989d6d51db 100644 --- a/src/corelib/serialization/qjsonvalue.cpp +++ b/src/corelib/serialization/qjsonvalue.cpp @@ -40,6 +40,7 @@ #include <qjsonobject.h> #include <qjsonvalue.h> #include <qjsonarray.h> +#include <qurl.h> #include <qvariant.h> #include <qstringlist.h> #include <qdebug.h> @@ -407,6 +408,14 @@ QJsonValue &QJsonValue::operator =(const QJsonValue &other) \li QMetaType::QVariantHash \endlist \li QJsonValue::Object + + \row + \li + \list + \li QMetaType::QUrl + \endlist + \li QJsonValue::String. The conversion will use QUrl::toString() with flag + QUrl::FullyEncoded, so as to ensure maximum compatibility in parsing the URL \endtable For all other QVariant types a conversion to a QString will be attempted. If the returned string @@ -439,6 +448,8 @@ QJsonValue QJsonValue::fromVariant(const QVariant &variant) case QVariant::Hash: return QJsonValue(QJsonObject::fromVariantHash(variant.toHash())); #ifndef QT_BOOTSTRAPPED + case QVariant::Url: + return QJsonValue(variant.toUrl().toString(QUrl::FullyEncoded)); case QMetaType::QJsonValue: return variant.toJsonValue(); case QMetaType::QJsonObject: |