Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qqmljsstreamwriter_p.h
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef QQMLJSSTREAMWRITER_P_H
5#define QQMLJSSTREAMWRITER_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16
17#include <QtCore/QIODevice>
18#include <QtCore/QList>
19#include <QtCore/QString>
20#include <QtCore/QScopedPointer>
21#include <QtCore/QPair>
22
24
26{
27public:
29
30 void writeStartDocument();
31 void writeEndDocument();
33 QByteArrayView uri, int majorVersion, int minorVersion, QByteArrayView as = {});
35 void writeEndObject();
39
40 // TODO: Drop this once we can drop qmlplugindump. It is substantially weird.
42 QByteArrayView name, const QList<QPair<QAnyStringView, int>> &keyValue);
43
44 // TODO: these would look better with generator functions.
46 void writeStringListBinding(QByteArrayView name, const QList<QAnyStringView> &elements);
47
50
51private:
52 void writeIndent();
53 void writePotentialLine(const QByteArray &line);
54 void flushPotentialLinesWithNewlines();
55
56 template<typename String, typename ElementHandler>
57 void doWriteArrayBinding(
58 QByteArrayView name, const QList<String> &elements, ElementHandler &&handler);
59
60 int m_indentDepth;
61 QList<QByteArray> m_pendingLines;
62 int m_pendingLineLength;
63 bool m_maybeOneline;
64 QScopedPointer<QIODevice> m_stream;
65};
66
68
69#endif // QQMLJSSTREAMWRITER_P_H
\inmodule QtCore
\inmodule QtCore
\inmodule QtCore
Definition qbytearray.h:57
Definition qlist.h:75
void writeStringListBinding(QByteArrayView name, const QList< QAnyStringView > &elements)
void write(QByteArrayView data)
void writeEnumObjectLiteralBinding(QByteArrayView name, const QList< QPair< QAnyStringView, int > > &keyValue)
void writeLibraryImport(QByteArrayView uri, int majorVersion, int minorVersion, QByteArrayView as={})
void writeArrayBinding(QByteArrayView name, const QByteArrayList &elements)
QQmlJSStreamWriter(QByteArray *array)
void writeScriptBinding(QByteArrayView name, QByteArrayView rhs)
void writeStartObject(QByteArrayView component)
void writeBooleanBinding(QByteArrayView name, bool value)
void writeStringBinding(QByteArrayView name, QAnyStringView value)
void writeNumberBinding(QByteArrayView name, qint64 value)
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLuint name
GLenum array
static qreal component(const QPointF &point, unsigned int i)
static const QTextHtmlElement elements[Html_NumElements]
long long qint64
Definition qtypes.h:60