diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/corelib/serialization/qjsondocument.cpp | 13 | ||||
| -rw-r--r-- | src/corelib/serialization/qjsondocument.h | 20 | ||||
| -rw-r--r-- | src/corelib/serialization/qjsonvalue.cpp | 11 | ||||
| -rw-r--r-- | src/corelib/serialization/qjsonvalue.h | 9 |
4 files changed, 47 insertions, 6 deletions
diff --git a/src/corelib/serialization/qjsondocument.cpp b/src/corelib/serialization/qjsondocument.cpp index 1c8b6a69798..9b1439c66a6 100644 --- a/src/corelib/serialization/qjsondocument.cpp +++ b/src/corelib/serialization/qjsondocument.cpp @@ -216,6 +216,7 @@ QVariant QJsonDocument::toVariant() const #endif // !QT_NO_VARIANT /*! +\if !defined(qt7) \enum QJsonDocument::JsonFormat \since 5.1 @@ -227,6 +228,12 @@ QVariant QJsonDocument::toVariant() const \value Compact Defines a compact output as follows: \snippet code/src_corelib_serialization_qjsondocument.cpp 1 +\else + \typealias QJsonDocument::JsonFormat + \since 5.1 + + Same as \l QJsonValue::JsonFormat. +\endif */ /*! @@ -243,7 +250,8 @@ QByteArray QJsonDocument::toJson(JsonFormat format) const return json; return QJsonPrivate::Value::fromTrustedCbor(d->value).toJson( - format == JsonFormat::Compact ? QJsonValue::Compact : QJsonValue::Indented); + format == JsonFormat::Compact ? QJsonValue::JsonFormat::Compact + : QJsonValue::JsonFormat::Indented); } #endif @@ -472,7 +480,8 @@ QDebug operator<<(QDebug dbg, const QJsonDocument &o) dbg << "QJsonDocument()"; return dbg; } - QByteArray json = QJsonPrivate::Value::fromTrustedCbor(o.d->value).toJson(QJsonValue::Compact); + QByteArray json = + QJsonPrivate::Value::fromTrustedCbor(o.d->value).toJson(QJsonValue::JsonFormat::Compact); dbg.nospace() << "QJsonDocument(" << json.constData() // print as utf-8 string without extra quotation marks << ')'; diff --git a/src/corelib/serialization/qjsondocument.h b/src/corelib/serialization/qjsondocument.h index a52bc6928cd..237445b04aa 100644 --- a/src/corelib/serialization/qjsondocument.h +++ b/src/corelib/serialization/qjsondocument.h @@ -6,8 +6,12 @@ #include <QtCore/qcompare.h> #include <QtCore/qjsonparseerror.h> +#if (QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)) || defined(QT_BOOTSTRAPPED) #include <QtCore/qjsonvalue.h> +#endif +#include <QtCore/qlatin1stringview.h> #include <QtCore/qscopedpointer.h> +#include <QtCore/qstringview.h> #include <memory> @@ -15,6 +19,9 @@ QT_BEGIN_NAMESPACE class QDebug; class QCborValue; +class QJsonArray; +class QJsonObject; +class QJsonValue; namespace QJsonPrivate { class Parser; } @@ -49,15 +56,26 @@ public: static QJsonDocument fromVariant(const QVariant &variant); QVariant toVariant() const; +#if (QT_VERSION < QT_VERSION_CHECK(7, 0, 0)) && !defined(QT_BOOTSTRAPPED) enum JsonFormat { Indented, Compact }; +#else + using JsonFormat = QJsonValue::JsonFormat; +# ifdef __cpp_using_enum + using enum QJsonValue::JsonFormat; +# else + // keep in sync with qjsonvalue.h + static constexpr auto Indented = JsonFormat::Indented; + static constexpr auto Compact = JsonFormat::Compact; +# endif +#endif static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = nullptr); #if !defined(QT_JSON_READONLY) || defined(Q_QDOC) - QByteArray toJson(JsonFormat format = Indented) const; + QByteArray toJson(JsonFormat format = JsonFormat::Indented) const; #endif bool isEmpty() const; diff --git a/src/corelib/serialization/qjsonvalue.cpp b/src/corelib/serialization/qjsonvalue.cpp index 1ae6cef7ef2..199e5d3154b 100644 --- a/src/corelib/serialization/qjsonvalue.cpp +++ b/src/corelib/serialization/qjsonvalue.cpp @@ -616,6 +616,7 @@ QJsonValue QJsonValue::fromJson(QByteArrayView json, QJsonParseError *error) } /*! +\if defined(qt7) \enum QJsonValue::JsonFormat \since 6.9 @@ -627,7 +628,13 @@ QJsonValue QJsonValue::fromJson(QByteArrayView json, QJsonParseError *error) \value Compact Defines a compact output as follows: \snippet code/src_corelib_serialization_qjsondocument.cpp 1 - */ +\else + \typealias QJsonValue::JsonFormat + \since 6.9 + + Same as \l QJsonDocument::JsonFormat. +\endif +*/ /*! \since 6.9 @@ -640,7 +647,7 @@ QByteArray QJsonValue::toJson(JsonFormat format) const { QByteArray json; - QJsonPrivate::Writer::valueToJson(value, json, 0, (format == Compact)); + QJsonPrivate::Writer::valueToJson(value, json, 0, (format == JsonFormat::Compact)); return json; } diff --git a/src/corelib/serialization/qjsonvalue.h b/src/corelib/serialization/qjsonvalue.h index 8e0f6d879f9..16e5cffed81 100644 --- a/src/corelib/serialization/qjsonvalue.h +++ b/src/corelib/serialization/qjsonvalue.h @@ -7,6 +7,9 @@ #include <QtCore/qcborvalue.h> #include <QtCore/qcompare.h> #include <QtCore/qglobal.h> +#if (QT_VERSION < QT_VERSION_CHECK(7, 0, 0)) && !defined(QT_BOOTSTRAPPED) +#include <QtCore/qjsondocument.h> +#endif #include <QtCore/qjsonparseerror.h> #include <QtCore/qstring.h> #include <QtCore/qshareddata.h> @@ -35,10 +38,14 @@ public: Undefined = 0x80 }; - enum JsonFormat { +#if (QT_VERSION < QT_VERSION_CHECK(7, 0, 0)) && !defined(QT_BOOTSTRAPPED) + using JsonFormat = QJsonDocument::JsonFormat; +#else + enum class JsonFormat { Indented, Compact, }; +#endif QJsonValue(Type = Null); QJsonValue(bool b); |
