summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/serialization/qjsondocument.cpp13
-rw-r--r--src/corelib/serialization/qjsondocument.h20
-rw-r--r--src/corelib/serialization/qjsonvalue.cpp11
-rw-r--r--src/corelib/serialization/qjsonvalue.h9
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);