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
language.h
Go to the documentation of this file.
1// Copyright (C) 2018 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 LANGUAGE_H
5#define LANGUAGE_H
6
7#include <QtCore/qstring.h>
8#include <QtCore/qstringview.h>
9#include <QtCore/qstring.h>
10
12
13enum class Language { Cpp, Python };
14
16
17namespace language {
18
21
24
26extern char listStart;
27extern char listEnd;
28extern QString nullPtr;
29extern QString operatorNew;
30extern QString qtQualifier;
31extern QString qualifier;
32extern QString self;
33extern QString eol;
34extern QString emptyString;
35
37extern QString cppTrue;
38extern QString cppFalse;
39
40// Base class for streamable objects with one QStringView parameter
42{
43public:
45
46 QStringView parameter() const { return m_parameter; }
47
48private:
49 QStringView m_parameter;
50};
51
57
58QTextStream &operator<<(QTextStream &str, const qtConfig &c);
59
65
66QTextStream &operator<<(QTextStream &str, const openQtConfig &c);
67
73
74QTextStream &operator<<(QTextStream &, const closeQtConfig &c);
75
77
82
83enum class Encoding { Utf8, Unicode };
84
85void _formatString(QTextStream &str, const QString &value, const QString &indent,
86 bool qString);
87
88template <bool AsQString>
90{
91public:
92 explicit _string(const QString &value, const QString &indent = QString())
93 : m_value(value), m_indent(indent) {}
94
95 void format(QTextStream &str) const
96 { _formatString(str, m_value, m_indent, AsQString); }
97
98private:
99 const QString &m_value;
100 const QString &m_indent;
101};
102
103template <bool AsQString>
105{
106 s.format(str);
107 return str;
108}
109
110using charliteral = _string<false>;
111using qstring = _string<true>;
112
113class repeat {
114public:
115 explicit repeat(int count, char c) : m_count(count), m_char(c) {}
116
117 friend QTextStream &operator<<(QTextStream &str, const repeat &r);
118
119private:
120 const int m_count;
121 const char m_char;
122};
123
125public:
126 explicit startFunctionDefinition1(const char *name, const QString &parameterType,
127 const QString &parameterName,
128 const QString &indent,
129 const char *returnType = nullptr);
130
132private:
133 const char *m_name;
134 const QString &m_parameterType;
135 const QString &m_parameterName;
136 const QString &m_indent;
137 const char *m_return;
138};
139
141public:
142 explicit endFunctionDefinition(const char *name);
143
145private:
146 const char *m_name;
147};
148
149void _formatStackVariable(QTextStream &str, const char *className, QStringView varName, bool withInitParameters);
150
151template <bool withInitParameters>
153public:
154 explicit _stackVariable(const char *className, QStringView varName) :
155 m_className(className), m_varName(varName) {}
156
157 void format(QTextStream &str) const
158 { _formatStackVariable(str, m_className, m_varName, withInitParameters); }
159
160private:
161 const char *m_className;
162 QStringView m_varName;
163 QStringView m_parameters;
164};
165
166template <bool withInitParameters>
167inline QTextStream &operator<<(QTextStream &str, const _stackVariable<withInitParameters> &s)
168{
169 s.format(str);
170 return str;
171}
172
173using stackVariable = _stackVariable<false>;
174using stackVariableWithInitParameters = _stackVariable<true>;
175
177{
178 Ambiguous = 0x1
179};
180
181Q_DECLARE_FLAGS(SignalSlotOptions, SignalSlotOption)
182
190
191void formatConnection(QTextStream &str, const SignalSlot &sender, const SignalSlot &receiver,
193
194QString boolValue(bool v);
195
197
198} // namespace language
199
200#endif // LANGUAGE_H
\inmodule QtCore
Definition qstringview.h:78
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
QStringView parameter() const
Definition language.h:46
StringViewStreamable(QStringView parameter)
Definition language.h:44
void format(QTextStream &str) const
Definition language.h:157
_stackVariable(const char *className, QStringView varName)
Definition language.h:154
_string(const QString &value, const QString &indent=QString())
Definition language.h:92
void format(QTextStream &str) const
Definition language.h:95
closeQtConfig(QStringView name)
Definition language.h:71
friend QTextStream & operator<<(QTextStream &str, const endFunctionDefinition &f)
Definition language.cpp:344
endFunctionDefinition(const char *name)
Definition language.cpp:340
openQtConfig(QStringView name)
Definition language.h:63
qtConfig(QStringView name)
Definition language.h:55
repeat(int count, char c)
Definition language.h:115
friend QTextStream & operator<<(QTextStream &str, const repeat &r)
Definition language.cpp:307
friend QTextStream & operator<<(QTextStream &str, const startFunctionDefinition1 &f)
Definition language.cpp:323
startFunctionDefinition1(const char *name, const QString &parameterType, const QString &parameterName, const QString &indent, const char *returnType=nullptr)
Definition language.cpp:314
QString str
[2]
ConnectionSyntax
Definition language.h:15
Language
Definition language.h:13
QString self
Definition language.cpp:58
_stackVariable< true > stackVariableWithInitParameters
Definition language.h:174
Language language()
Definition language.cpp:16
QString qtQualifier
Definition language.cpp:56
QString enumValue(const QString &value)
Definition language.cpp:506
QLatin1StringView dockWidgetArea(int v)
Definition language.cpp:139
char listStart
Definition language.cpp:52
QString emptyString
Definition language.cpp:60
QString nullPtr
Definition language.cpp:54
QLatin1StringView paletteColorRole(int v)
Definition language.cpp:153
void _formatStackVariable(QTextStream &str, const char *className, QStringView varName, bool withInitParameters)
Definition language.cpp:357
_string< false > charliteral
Definition language.h:110
_string< true > qstring
Definition language.h:111
void _formatString(QTextStream &str, const QString &value, const QString &indent, bool qString)
Definition language.cpp:283
QString eol
Definition language.cpp:59
char listEnd
Definition language.cpp:53
QString qualifier
Definition language.cpp:57
QString cppFalse
Definition language.cpp:64
void setLanguage(Language l)
Definition language.cpp:18
ConnectionSyntax connectionSyntax()
void setConnectionSyntax(ConnectionSyntax cs)
QString fixClassName(QString className)
Definition language.cpp:103
QString cppTrue
Definition language.cpp:63
SignalSlotOption
Definition language.h:177
QTextStream & operator<<(QTextStream &str, const qtConfig &c)
Definition language.cpp:66
void formatConnection(QTextStream &str, const SignalSlot &sender, const SignalSlot &receiver, ConnectionSyntax connectionSyntax)
Definition language.cpp:459
QString cppQualifier
Definition language.cpp:62
_stackVariable< false > stackVariable
Definition language.h:173
QLatin1StringView toolbarArea(int v)
Definition language.cpp:110
QString operatorNew
Definition language.cpp:55
QLatin1StringView sizePolicy(int v)
Definition language.cpp:124
QString derefPointer
Definition language.cpp:51
QString boolValue(bool v)
Definition language.cpp:493
QT_FORWARD_DECLARE_CLASS(QCocoaMenuItem)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
GLsizei const GLfloat * v
[13]
GLboolean r
[2]
GLenum GLenum GLsizei count
GLfloat GLfloat f
GLuint name
GLdouble s
[6]
Definition qopenglext.h:235
const GLubyte * c
const char className[16]
[1]
Definition qwizard.cpp:100
SignalSlotOptions options
Definition language.h:188