Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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
10QT_FORWARD_DECLARE_CLASS(QTextStream)
11
12enum class Language { Cpp, Python };
13
15
16namespace language {
17
20
23
24extern QString derefPointer;
25extern char listStart;
26extern char listEnd;
27extern QString nullPtr;
28extern QString operatorNew;
29extern QString qtQualifier;
30extern QString qualifier;
31extern QString self;
32extern QString eol;
33extern QString emptyString;
34
35extern QString cppQualifier;
36extern QString cppTrue;
37extern QString cppFalse;
38
39// Base class for streamable objects with one QStringView parameter
41{
42public:
43 StringViewStreamable(QStringView parameter) : m_parameter(parameter) {}
44
45 QStringView parameter() const { return m_parameter; }
46
47private:
48 QStringView m_parameter;
49};
50
52{
53public:
54 qtConfig(QStringView name) : StringViewStreamable(name) {}
55};
56
57QTextStream &operator<<(QTextStream &str, const qtConfig &c);
58
60{
61public:
62 openQtConfig(QStringView name) : StringViewStreamable(name) {}
63};
64
65QTextStream &operator<<(QTextStream &str, const openQtConfig &c);
66
68{
69public:
70 closeQtConfig(QStringView name) : StringViewStreamable(name) {}
71};
72
73QTextStream &operator<<(QTextStream &, const closeQtConfig &c);
74
75QString fixClassName(QString className);
76
81
82enum class Encoding { Utf8, Unicode };
83
84void _formatString(QTextStream &str, const QString &value, const QString &indent,
85 bool qString);
86
87template <bool AsQString>
89{
90public:
91 explicit _string(const QString &value, const QString &indent = QString())
92 : m_value(value), m_indent(indent) {}
93
94 void format(QTextStream &str) const
95 { _formatString(str, m_value, m_indent, AsQString); }
96
97private:
98 const QString &m_value;
99 const QString &m_indent;
100};
101
102template <bool AsQString>
103inline QTextStream &operator<<(QTextStream &str, const language::_string<AsQString> &s)
104{
105 s.format(str);
106 return str;
107}
108
109using charliteral = _string<false>;
110using qstring = _string<true>;
111
112class repeat {
113public:
114 explicit repeat(int count, char c) : m_count(count), m_char(c) {}
115
116 friend QTextStream &operator<<(QTextStream &str, const repeat &r);
117
118private:
119 const int m_count;
120 const char m_char;
121};
122
124public:
125 explicit startFunctionDefinition1(const char *name, const QString &parameterType,
126 const QString &parameterName,
127 const QString &indent,
128 const char *returnType = nullptr);
129
130 friend QTextStream &operator<<(QTextStream &str, const startFunctionDefinition1 &f);
131private:
132 const char *m_name;
133 const QString &m_parameterType;
134 const QString &m_parameterName;
135 const QString &m_indent;
136 const char *m_return;
137};
138
140public:
141 explicit endFunctionDefinition(const char *name);
142
143 friend QTextStream &operator<<(QTextStream &str, const endFunctionDefinition &f);
144private:
145 const char *m_name;
146};
147
148void _formatStackVariable(QTextStream &str, const char *className, QStringView varName, bool withInitParameters);
149
150template <bool withInitParameters>
152public:
153 explicit _stackVariable(const char *className, QStringView varName) :
154 m_className(className), m_varName(varName) {}
155
156 void format(QTextStream &str) const
157 { _formatStackVariable(str, m_className, m_varName, withInitParameters); }
158
159private:
160 const char *m_className;
161 QStringView m_varName;
162 QStringView m_parameters;
163};
164
165template <bool withInitParameters>
166inline QTextStream &operator<<(QTextStream &str, const _stackVariable<withInitParameters> &s)
167{
168 s.format(str);
169 return str;
170}
171
174
176{
178};
179
180Q_DECLARE_FLAGS(SignalSlotOptions, SignalSlotOption)
181
183{
184 QString name;
185 QString signature;
186 QString className;
188};
189
190void formatConnection(QTextStream &str, const SignalSlot &sender, const SignalSlot &receiver,
191 ConnectionSyntax connectionSyntax);
192
193QString boolValue(bool v);
194
195QString enumValue(const QString &value);
196
197} // namespace language
198
199#endif // LANGUAGE_H
void acceptUI(DomUI *node) override
void acceptCustomWidgets(DomCustomWidgets *node) override
void acceptCustomWidget(DomCustomWidget *node) override
void acceptUI(DomUI *node) override
void acceptWidget(DomWidget *node) override
QStringList connections() const
bool uic(const QString &fileName, QTextStream *output=nullptr)
Definition driver.cpp:245
QTextStream & output() const
Definition driver.h:38
void setUseIdBasedTranslations(bool u)
Definition driver.h:68
const DomAction * actionByName(const QString &attributeName) const
Definition driver.cpp:305
QString widgetVariableName(const QString &attributeName) const
Definition driver.cpp:294
static QString qtify(const QString &name)
Definition driver.cpp:166
const DomActionGroup * actionGroupByName(const QString &attributeName) const
Definition driver.cpp:300
QString unique(const QString &instanceName=QString(), const QString &className=QString())
Definition driver.cpp:136
QString findOrInsertButtonGroup(const DomButtonGroup *ui_group)
Definition driver.cpp:110
static QString normalizedName(const QString &name)
Definition driver.cpp:127
bool useIdBasedTranslations() const
Definition driver.h:67
Option & option()
Definition driver.h:39
QString findOrInsertWidget(const DomWidget *ui_widget)
Definition driver.cpp:65
const DomWidget * widgetByName(const QString &attributeName) const
Definition driver.cpp:289
QString findOrInsertActionGroup(const DomActionGroup *ui_group)
Definition driver.cpp:100
bool uic(const QString &fileName, DomUI *ui, QTextStream *output=nullptr)
Definition driver.cpp:228
static QString headerFileName(const QString &fileName)
Definition driver.cpp:196
QString findOrInsertLayoutItem(const DomLayoutItem *ui_layoutItem)
Definition driver.cpp:82
virtual ~Driver()
const DomButtonGroup * findButtonGroup(const QString &attributeName) const
Definition driver.cpp:116
QString headerFileName() const
Definition driver.cpp:184
QString findOrInsertAction(const DomAction *ui_action)
Definition driver.cpp:105
QString findOrInsertLayout(const DomLayout *ui_layout)
Definition driver.cpp:77
QString findOrInsertSpacer(const DomSpacer *ui_spacer)
Definition driver.cpp:72
QString findOrInsertName(const QString &name)
Definition driver.cpp:122
bool printDependencies(const QString &fileName)
Definition driver.cpp:218
The QCommandLineOption class defines a possible command-line option. \inmodule QtCore.
The QCommandLineParser class provides a means for handling the command line options.
\inmodule QtCore
Definition qfile.h:96
\inmodule QtCore
Definition qhash.h:837
Definition qlist.h:80
Definition uic.h:30
bool printDependencies()
Definition uic.cpp:36
bool isButton(const QString &className) const
Definition uic.cpp:292
~Uic()
QString pixmapFunction() const
Definition uic.h:47
QTextStream & output()
Definition uic.h:41
bool write(QIODevice *in)
Definition uic.cpp:191
const DatabaseInfo * databaseInfo() const
Definition uic.h:53
const CustomWidgetsInfo * customWidgetsInfo() const
Definition uic.h:56
bool write(DomUI *ui)
Definition uic.cpp:220
bool isMenu(const QString &className) const
Definition uic.cpp:314
void setPixmapFunction(const QString &f)
Definition uic.h:50
bool isContainer(const QString &className) const
Definition uic.cpp:302
const Option & option() const
Definition uic.h:44
Driver * driver() const
Definition uic.h:38
QStringView parameter() const
Definition language.h:45
StringViewStreamable(QStringView parameter)
Definition language.h:43
void format(QTextStream &str) const
Definition language.h:156
_stackVariable(const char *className, QStringView varName)
Definition language.h:153
_string(const QString &value, const QString &indent=QString())
Definition language.h:91
void format(QTextStream &str) const
Definition language.h:94
closeQtConfig(QStringView name)
Definition language.h:70
endFunctionDefinition(const char *name)
Definition language.cpp:349
openQtConfig(QStringView name)
Definition language.h:62
qtConfig(QStringView name)
Definition language.h:54
repeat(int count, char c)
Definition language.h:114
startFunctionDefinition1(const char *name, const QString &parameterType, const QString &parameterName, const QString &indent, const char *returnType=nullptr)
Definition language.cpp:323
ConnectionSyntax
Definition language.h:14
Language
Definition language.h:12
QString self
Definition language.cpp:60
_stackVariable< true > stackVariableWithInitParameters
Definition language.h:173
Language language()
Definition language.cpp:18
QString qtQualifier
Definition language.cpp:58
QString enumValue(const QString &value)
Definition language.cpp:515
QLatin1StringView dockWidgetArea(int v)
Definition language.cpp:141
char listStart
Definition language.cpp:54
QString emptyString
Definition language.cpp:62
QString nullPtr
Definition language.cpp:56
QLatin1StringView paletteColorRole(int v)
Definition language.cpp:155
void setLanguage(Language)
Definition language.cpp:20
void _formatStackVariable(QTextStream &str, const char *className, QStringView varName, bool withInitParameters)
Definition language.cpp:366
_string< false > charliteral
Definition language.h:109
_string< true > qstring
Definition language.h:110
void _formatString(QTextStream &str, const QString &value, const QString &indent, bool qString)
Definition language.cpp:289
QString eol
Definition language.cpp:61
char listEnd
Definition language.cpp:55
QString qualifier
Definition language.cpp:59
QString cppFalse
Definition language.cpp:66
ConnectionSyntax connectionSyntax()
void setConnectionSyntax(ConnectionSyntax cs)
QString fixClassName(QString className)
Definition language.cpp:105
QString cppTrue
Definition language.cpp:65
SignalSlotOption
Definition language.h:176
void formatConnection(QTextStream &str, const SignalSlot &sender, const SignalSlot &receiver, ConnectionSyntax connectionSyntax)
Definition language.cpp:468
QString cppQualifier
Definition language.cpp:64
_stackVariable< false > stackVariable
Definition language.h:172
QLatin1StringView toolbarArea(int v)
Definition language.cpp:112
QString operatorNew
Definition language.cpp:57
QLatin1StringView sizePolicy(int v)
Definition language.cpp:126
QString derefPointer
Definition language.cpp:53
QString boolValue(bool v)
Definition language.cpp:502
static QString pythonRoot(const QString &pythonPath, const QString &uiFileIn)
Definition main.cpp:25
static const char pythonPathVar[]
Definition main.cpp:22
int runUic(int argc, char *argv[])
Definition main.cpp:52
int main(int argc, char *argv[])
[ctor_close]
QString outputFile
Definition option.h:36
unsigned int headerProtection
Definition option.h:20
unsigned int rcPrefix
Definition option.h:32
unsigned int idBased
Definition option.h:28
QString pythonRoot
Definition option.h:43
unsigned int forceMemberFnPtrConnectionSyntax
Definition option.h:29
QString includeFile
Definition option.h:42
unsigned int implicitIncludes
Definition option.h:27
unsigned int forceStringConnectionSyntax
Definition option.h:30
QString indent
Definition option.h:38
QString postfix
Definition option.h:40
QString messagePrefix() const
Definition option.h:65
QString qrcOutputFile
Definition option.h:37
unsigned int useStarImports
Definition option.h:31
unsigned int dependencies
Definition option.h:25
QString translateFunction
Definition option.h:41
unsigned int generateImplemetation
Definition option.h:22
PythonResourceImport
Definition option.h:14
unsigned int limitXPM_LineLength
Definition option.h:26
unsigned int generateNamespace
Definition option.h:23
unsigned int qtNamespace
Definition option.h:33
PythonResourceImport pythonResourceImport
Definition option.h:45
QString prefix
Definition option.h:39
Option()
Definition option.h:47
QString inputFile
Definition option.h:35
unsigned int copyrightHeader
Definition option.h:21
unsigned int autoConnection
Definition option.h:24
virtual void acceptAction(DomAction *action)
virtual void acceptLayoutDefault(DomLayoutDefault *layoutDefault)
virtual void acceptDate(DomDate *date)
virtual void acceptActionGroup(DomActionGroup *actionGroup)
virtual void acceptLayoutFunction(DomLayoutFunction *layoutFunction)
virtual void acceptButtonGroup(const DomButtonGroup *buttonGroup)
QList< DomWidget * > DomWidgets
Definition treewalker.h:82
virtual void acceptConnection(DomConnection *connection)
virtual void acceptRect(DomRect *rect)
virtual void acceptProperty(DomProperty *property)
virtual void acceptLayoutItem(DomLayoutItem *layoutItem)
virtual void acceptIncludes(DomIncludes *includes)
virtual void acceptFont(DomFont *font)
virtual void acceptDateTime(DomDateTime *dateTime)
virtual void acceptInclude(DomInclude *incl)
virtual void acceptSpacer(DomSpacer *spacer)
virtual void acceptCustomWidgets(DomCustomWidgets *customWidgets)
virtual void acceptCustomWidget(DomCustomWidget *customWidget)
virtual void acceptColor(DomColor *color)
virtual void acceptColorGroup(DomColorGroup *colorGroup)
virtual void acceptTabStops(DomTabStops *tabStops)
virtual void acceptConnectionHint(DomConnectionHint *connectionHint)
virtual void acceptPalette(DomPalette *palette)
virtual ~TreeWalker()=default
virtual void acceptSize(DomSize *size)
virtual void acceptActionRef(DomActionRef *actionRef)
virtual void acceptPoint(DomPoint *point)
virtual void acceptTime(DomTime *time)
virtual void acceptSizePolicy(DomSizePolicy *sizePolicy)
virtual void acceptWidget(DomWidget *widget)
virtual void acceptConnectionHints(DomConnectionHints *connectionHints)
virtual void acceptUI(DomUI *ui)
Definition treewalker.cpp:9
virtual void acceptButtonGroups(const DomButtonGroups *buttonGroups)
virtual void acceptConnections(DomConnections *connections)
virtual void acceptLayout(DomLayout *layout)
SignalSlotOptions options
Definition language.h:187