diff options
Diffstat (limited to 'src/qmltyperegistrar/qqmljsstreamwriter_p.h')
-rw-r--r-- | src/qmltyperegistrar/qqmljsstreamwriter_p.h | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/qmltyperegistrar/qqmljsstreamwriter_p.h b/src/qmltyperegistrar/qqmljsstreamwriter_p.h index d0984b8ca9..ef961de69c 100644 --- a/src/qmltyperegistrar/qqmljsstreamwriter_p.h +++ b/src/qmltyperegistrar/qqmljsstreamwriter_p.h @@ -29,21 +29,34 @@ public: void writeStartDocument(); void writeEndDocument(); - void writeLibraryImport(const QString &uri, int majorVersion, int minorVersion, const QString &as = QString()); - //void writeFilesystemImport(const QString &file, const QString &as = QString()); - void writeStartObject(const QString &component); + void writeLibraryImport( + QByteArrayView uri, int majorVersion, int minorVersion, QByteArrayView as = {}); + void writeStartObject(QByteArrayView component); void writeEndObject(); - void writeScriptBinding(const QString &name, const QString &rhs); - void writeScriptObjectLiteralBinding(const QString &name, const QList<QPair<QString, QString> > &keyValue); - void writeArrayBinding(const QString &name, const QStringList &elements); - void write(const QString &data); - void writeBooleanBinding(const QString &name, bool value); + void writeScriptBinding(QByteArrayView name, QByteArrayView rhs); + void writeStringBinding(QByteArrayView name, QAnyStringView value); + void writeNumberBinding(QByteArrayView name, qint64 value); + + // TODO: Drop this once we can drop qmlplugindump. It is substantially weird. + void writeEnumObjectLiteralBinding( + QByteArrayView name, const QList<QPair<QAnyStringView, int>> &keyValue); + + // TODO: these would look better with generator functions. + void writeArrayBinding(QByteArrayView name, const QByteArrayList &elements); + void writeStringListBinding(QByteArrayView name, const QList<QAnyStringView> &elements); + + void write(QByteArrayView data); + void writeBooleanBinding(QByteArrayView name, bool value); private: void writeIndent(); void writePotentialLine(const QByteArray &line); void flushPotentialLinesWithNewlines(); + template<typename String, typename ElementHandler> + void doWriteArrayBinding( + QByteArrayView name, const QList<String> &elements, ElementHandler &&handler); + int m_indentDepth; QList<QByteArray> m_pendingLines; int m_pendingLineLength; |