diff options
Diffstat (limited to 'examples/corelib/serialization/convert')
12 files changed, 21 insertions, 82 deletions
diff --git a/examples/corelib/serialization/convert/cborconverter.cpp b/examples/corelib/serialization/convert/cborconverter.cpp index 4ee86535aa..21f63f7d83 100644 --- a/examples/corelib/serialization/convert/cborconverter.cpp +++ b/examples/corelib/serialization/convert/cborconverter.cpp @@ -142,20 +142,6 @@ const char *CborDiagnosticDumper::optionsHelp() const return diagnosticHelp; } -bool CborDiagnosticDumper::probeFile(QIODevice *f) const -{ - Q_UNUSED(f); - return false; -} - -QVariant CborDiagnosticDumper::loadFile(QIODevice *f, const Converter *&outputConverter) const -{ - Q_UNREACHABLE(); - Q_UNUSED(f); - Q_UNUSED(outputConverter); - return QVariant(); -} - void CborDiagnosticDumper::saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) const { diff --git a/examples/corelib/serialization/convert/cborconverter.h b/examples/corelib/serialization/convert/cborconverter.h index ff03185656..db68f99fda 100644 --- a/examples/corelib/serialization/convert/cborconverter.h +++ b/examples/corelib/serialization/convert/cborconverter.h @@ -14,8 +14,6 @@ public: Directions directions() const override; Options outputOptions() const override; const char *optionsHelp() const override; - bool probeFile(QIODevice *f) const override; - QVariant loadFile(QIODevice *f, const Converter *&outputConverter) const override; void saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) const override; }; diff --git a/examples/corelib/serialization/convert/converter.cpp b/examples/corelib/serialization/convert/converter.cpp index 7ecd4134e9..231d0d51cd 100644 --- a/examples/corelib/serialization/convert/converter.cpp +++ b/examples/corelib/serialization/convert/converter.cpp @@ -23,3 +23,20 @@ const QList<const Converter *> &Converter::allConverters() { return converters(); } + +// Some virtual methods that Converter classes needn't override, when not relevant: +Converter::Options Converter::outputOptions() const { return {}; } +const char *Converter::optionsHelp() const { return nullptr; } +bool Converter::probeFile(QIODevice *) const { return false; } + +// The virtual method they should override if they claim to support In: +QVariant Converter::loadFile(QIODevice *, const Converter *&outputConverter) const +{ + Q_ASSERT(!directions().testFlag(Converter::Direction::In)); + // For those that don't, this should never be called. + Q_UNIMPLEMENTED(); + // But every implementation should at least do this: + if (!outputConverter) + outputConverter = this; + return QVariant(); +} diff --git a/examples/corelib/serialization/convert/converter.h b/examples/corelib/serialization/convert/converter.h index fabbffddfb..6631d3107f 100644 --- a/examples/corelib/serialization/convert/converter.h +++ b/examples/corelib/serialization/convert/converter.h @@ -29,10 +29,10 @@ public: virtual QString name() const = 0; virtual Directions directions() const = 0; - virtual Options outputOptions() const = 0; - virtual const char *optionsHelp() const = 0; - virtual bool probeFile(QIODevice *f) const = 0; - virtual QVariant loadFile(QIODevice *f, const Converter *&outputConverter) const = 0; + virtual Options outputOptions() const; + virtual const char *optionsHelp() const; + virtual bool probeFile(QIODevice *f) const; + virtual QVariant loadFile(QIODevice *f, const Converter *&outputConverter) const; virtual void saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) const = 0; }; diff --git a/examples/corelib/serialization/convert/debugtextdumper.cpp b/examples/corelib/serialization/convert/debugtextdumper.cpp index 2415e32f44..f010bd8e2a 100644 --- a/examples/corelib/serialization/convert/debugtextdumper.cpp +++ b/examples/corelib/serialization/convert/debugtextdumper.cpp @@ -59,25 +59,6 @@ Converter::Options DebugTextDumper::outputOptions() const return SupportsArbitraryMapKeys; } -const char *DebugTextDumper::optionsHelp() const -{ - return nullptr; -} - -bool DebugTextDumper::probeFile(QIODevice *f) const -{ - Q_UNUSED(f); - return false; -} - -QVariant DebugTextDumper::loadFile(QIODevice *f, const Converter *&outputConverter) const -{ - Q_UNREACHABLE(); - Q_UNUSED(f); - Q_UNUSED(outputConverter); - return QVariant(); -} - void DebugTextDumper::saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) const { diff --git a/examples/corelib/serialization/convert/debugtextdumper.h b/examples/corelib/serialization/convert/debugtextdumper.h index 636e6ccb3d..7d3d762104 100644 --- a/examples/corelib/serialization/convert/debugtextdumper.h +++ b/examples/corelib/serialization/convert/debugtextdumper.h @@ -13,9 +13,6 @@ public: QString name() const override; Directions directions() const override; Options outputOptions() const override; - const char *optionsHelp() const override; - bool probeFile(QIODevice *f) const override; - QVariant loadFile(QIODevice *f, const Converter *&outputConverter) const override; void saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) const override; }; diff --git a/examples/corelib/serialization/convert/jsonconverter.cpp b/examples/corelib/serialization/convert/jsonconverter.cpp index 611061705b..1b59ed5c1f 100644 --- a/examples/corelib/serialization/convert/jsonconverter.cpp +++ b/examples/corelib/serialization/convert/jsonconverter.cpp @@ -33,11 +33,6 @@ Converter::Directions JsonConverter::directions() const return Direction::InOut; } -Converter::Options JsonConverter::outputOptions() const -{ - return {}; -} - const char *JsonConverter::optionsHelp() const { return jsonOptionHelp; diff --git a/examples/corelib/serialization/convert/jsonconverter.h b/examples/corelib/serialization/convert/jsonconverter.h index acff1433be..e1dd1ecdb4 100644 --- a/examples/corelib/serialization/convert/jsonconverter.h +++ b/examples/corelib/serialization/convert/jsonconverter.h @@ -12,7 +12,6 @@ class JsonConverter : public Converter public: QString name() const override; Directions directions() const override; - Options outputOptions() const override; const char *optionsHelp() const override; bool probeFile(QIODevice *f) const override; QVariant loadFile(QIODevice *f, const Converter *&outputConverter) const override; diff --git a/examples/corelib/serialization/convert/nullconverter.cpp b/examples/corelib/serialization/convert/nullconverter.cpp index 00ae47a086..fb8be5c944 100644 --- a/examples/corelib/serialization/convert/nullconverter.cpp +++ b/examples/corelib/serialization/convert/nullconverter.cpp @@ -26,25 +26,6 @@ Converter::Options NullConverter::outputOptions() const return SupportsArbitraryMapKeys; } -const char *NullConverter::optionsHelp() const -{ - return nullptr; -} - -bool NullConverter::probeFile(QIODevice *f) const -{ - Q_UNUSED(f); - return false; -} - -QVariant NullConverter::loadFile(QIODevice *f, const Converter *&outputConverter) const -{ - Q_UNUSED(f); - Q_UNUSED(outputConverter); - outputConverter = this; - return QVariant(); -} - void NullConverter::saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) const { diff --git a/examples/corelib/serialization/convert/nullconverter.h b/examples/corelib/serialization/convert/nullconverter.h index fb215c313c..1bdf9f22f7 100644 --- a/examples/corelib/serialization/convert/nullconverter.h +++ b/examples/corelib/serialization/convert/nullconverter.h @@ -13,9 +13,6 @@ public: QString name() const override; Directions directions() const override; Options outputOptions() const override; - const char *optionsHelp() const override; - bool probeFile(QIODevice *f) const override; - QVariant loadFile(QIODevice *f, const Converter *&outputConverter) const override; void saveFile(QIODevice *f, const QVariant &contents, const QStringList &options) const override; }; diff --git a/examples/corelib/serialization/convert/textconverter.cpp b/examples/corelib/serialization/convert/textconverter.cpp index 3bfd806bf4..1f8b4f9c19 100644 --- a/examples/corelib/serialization/convert/textconverter.cpp +++ b/examples/corelib/serialization/convert/textconverter.cpp @@ -54,16 +54,6 @@ Converter::Directions TextConverter::directions() const return Direction::InOut; } -Converter::Options TextConverter::outputOptions() const -{ - return {}; -} - -const char *TextConverter::optionsHelp() const -{ - return nullptr; -} - bool TextConverter::probeFile(QIODevice *f) const { if (QFile *file = qobject_cast<QFile *>(f)) diff --git a/examples/corelib/serialization/convert/textconverter.h b/examples/corelib/serialization/convert/textconverter.h index 46e5500d9a..526f295517 100644 --- a/examples/corelib/serialization/convert/textconverter.h +++ b/examples/corelib/serialization/convert/textconverter.h @@ -12,8 +12,6 @@ class TextConverter : public Converter public: QString name() const override; Directions directions() const override; - Options outputOptions() const override; - const char *optionsHelp() const override; bool probeFile(QIODevice *f) const override; QVariant loadFile(QIODevice *f, const Converter *&outputConverter) const override; void saveFile(QIODevice *f, const QVariant &contents, |