diff options
Diffstat (limited to 'examples/corelib/serialization/convert')
5 files changed, 5 insertions, 78 deletions
diff --git a/examples/corelib/serialization/convert/cborconverter.cpp b/examples/corelib/serialization/convert/cborconverter.cpp index f907bb0af6..60410ed26a 100644 --- a/examples/corelib/serialization/convert/cborconverter.cpp +++ b/examples/corelib/serialization/convert/cborconverter.cpp @@ -144,7 +144,7 @@ static QCborValue convertFromVariant(const QVariant &v, TrimFloatingPoint fpTrim } if (v.userType() == qMetaTypeId<VariantOrderedMap>()) { - const auto m = v.value<VariantOrderedMap>(); + const auto m = qvariant_cast<VariantOrderedMap>(v); QCborMap map; for (const auto &pair : m) map.insert(convertFromVariant(pair.first, fpTrimming), diff --git a/examples/corelib/serialization/convert/datastreamconverter.cpp b/examples/corelib/serialization/convert/datastreamconverter.cpp index 7cdb844141..7e9f5e1bdc 100644 --- a/examples/corelib/serialization/convert/datastreamconverter.cpp +++ b/examples/corelib/serialization/convert/datastreamconverter.cpp @@ -98,7 +98,7 @@ static QString dumpVariant(const QVariant &v, const QString &indent = QLatin1Str int type = v.userType(); if (type == qMetaTypeId<VariantOrderedMap>() || type == QVariant::Map) { const auto map = (type == QVariant::Map) ? - VariantOrderedMap(v.toMap()) : v.value<VariantOrderedMap>(); + VariantOrderedMap(v.toMap()) : qvariant_cast<VariantOrderedMap>(v); result = QLatin1String("Map {"); for (const auto &pair : map) { diff --git a/examples/corelib/serialization/convert/jsonconverter.cpp b/examples/corelib/serialization/convert/jsonconverter.cpp index 80d1cc6827..ec24af703d 100644 --- a/examples/corelib/serialization/convert/jsonconverter.cpp +++ b/examples/corelib/serialization/convert/jsonconverter.cpp @@ -57,7 +57,6 @@ #include <QJsonValue> static JsonConverter jsonConverter; -static BinaryJsonConverter BinaryJsonConverter; static const char optionHelp[] = "compact=no|yes Use compact JSON form.\n"; @@ -151,62 +150,3 @@ void JsonConverter::saveFile(QIODevice *f, const QVariant &contents, const QStri f->write(convertFromVariant(contents).toJson(format)); } - -QString BinaryJsonConverter::name() -{ - return "binary-json"; -} - -Converter::Direction BinaryJsonConverter::directions() -{ - return InOut; -} - -Converter::Options BinaryJsonConverter::outputOptions() -{ - return {}; -} - -const char *BinaryJsonConverter::optionsHelp() -{ - return nullptr; -} - -bool BinaryJsonConverter::probeFile(QIODevice *f) -{ - return f->isReadable() && f->peek(4) == "qbjs"; -} - -QVariant BinaryJsonConverter::loadFile(QIODevice *f, Converter *&outputConverter) -{ - if (!outputConverter) - outputConverter = &jsonConverter; - - QJsonDocument doc; - if (auto file = qobject_cast<QFile *>(f)) { - uchar *ptr = file->map(0, file->size()); - if (ptr) - doc = QJsonDocument::fromRawData(reinterpret_cast<char *>(ptr), file->size()); - } - - if (doc.isNull()) - doc = QJsonDocument::fromBinaryData(f->readAll()); - - if (!doc.isObject() && !doc.isArray()) { - fprintf(stderr, "Failed to load Binary JSON.\n"); - exit(EXIT_FAILURE); - } - if (outputConverter == null) - return QVariant(); - return doc.toVariant(); -} - -void BinaryJsonConverter::saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) -{ - if (!options.isEmpty()) { - fprintf(stderr, "Unknown option '%s' to JSON output. This format has no options.\n", qPrintable(options.first())); - exit(EXIT_FAILURE); - } - - f->write(convertFromVariant(contents).toBinaryData()); -} diff --git a/examples/corelib/serialization/convert/jsonconverter.h b/examples/corelib/serialization/convert/jsonconverter.h index 17170603c7..445a0e6695 100644 --- a/examples/corelib/serialization/convert/jsonconverter.h +++ b/examples/corelib/serialization/convert/jsonconverter.h @@ -69,17 +69,4 @@ public: void saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) override; }; -class BinaryJsonConverter : public Converter -{ - // Converter interface -public: - QString name() override; - Direction directions() override; - Options outputOptions() override; - const char *optionsHelp() override; - bool probeFile(QIODevice *f) override; - QVariant loadFile(QIODevice *f, Converter *&outputConverter) override; - void saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) override; -}; - #endif // JSONCONVERTER_H diff --git a/examples/corelib/serialization/convert/xmlconverter.cpp b/examples/corelib/serialization/convert/xmlconverter.cpp index e62801bf76..d9e724dfe1 100644 --- a/examples/corelib/serialization/convert/xmlconverter.cpp +++ b/examples/corelib/serialization/convert/xmlconverter.cpp @@ -336,7 +336,7 @@ static void variantToXml(QXmlStreamWriter &xml, const QVariant &v) } else if (type == QVariant::Map || type == qMetaTypeId<VariantOrderedMap>()) { const VariantOrderedMap map = (type == QVariant::Map) ? VariantOrderedMap(v.toMap()) : - v.value<VariantOrderedMap>(); + qvariant_cast<VariantOrderedMap>(v); xml.writeStartElement("map"); for (const auto &pair : map) { @@ -425,10 +425,10 @@ static void variantToXml(QXmlStreamWriter &xml, const QVariant &v) default: if (type == qMetaTypeId<qfloat16>()) { xml.writeAttribute(typeString, "number"); - xml.writeCharacters(QString::number(float(v.value<qfloat16>()))); + xml.writeCharacters(QString::number(float(qvariant_cast<qfloat16>(v)))); } else if (type == qMetaTypeId<QCborSimpleType>()) { xml.writeAttribute(typeString, "CBOR simple type"); - xml.writeCharacters(QString::number(int(v.value<QCborSimpleType>()))); + xml.writeCharacters(QString::number(int(qvariant_cast<QCborSimpleType>(v)))); } else { // does this convert to string? const char *typeName = v.typeName(); |