7#include <QtCore/qtextstream.h>
26 derefPointer = u"->"_s;
29 nullPtr = u"nullptr"_s;
30 operatorNew = u"new "_s;
31 qtQualifier = u"Qt::"_s;
35 emptyString = u"QString()"_s;
38 case Language::Python:
39 derefPointer = u"."_s;
44 qtQualifier = u"Qt."_s;
48 emptyString = u"\"\""_s;
69QTextStream &operator<<(QTextStream &str,
const qtConfig &c)
71 str <<
"QT_CONFIG(" << c.parameter() <<
')';
77 str <<
"#if " <<
qtConfig(c.parameter()) <<
'\n';
83 str <<
"#endif // " <<
qtConfig(c.parameter()) <<
'\n';
96 for (
int i = 0; i < N; ++i) {
97 if (value == array[i].value)
98 return array[i].valueString;
100 auto defaultValue = array[defaultIndex].valueString;
101 qWarning(
"uic: Warning: Invalid enumeration value %d, defaulting to %s",
102 value, defaultValue.data());
106QString fixClassName(QString className)
110 className.replace(u'.', cppQualifier);
113 className.replace(cppQualifier,
"."_L1);
123 {0,
"NoToolBarArea"_L1},
124 {0x1,
"LeftToolBarArea"_L1},
125 {0x2,
"RightToolBarArea"_L1},
126 {0x4,
"TopToolBarArea"_L1},
127 {0x8,
"BottomToolBarArea"_L1},
128 {0xf,
"AllToolBarAreas"_L1}
130 return lookupEnum(toolBarAreas, v);
140 {0x5,
"Preferred"_L1},
141 {0x3,
"MinimumExpanding"_L1},
142 {0x7,
"Expanding"_L1},
145 return lookupEnum(sizePolicies, v, 3);
152 {0,
"NoDockWidgetArea"_L1},
153 {0x1,
"LeftDockWidgetArea"_L1},
154 {0x2,
"RightDockWidgetArea"_L1},
155 {0x4,
"TopDockWidgetArea"_L1},
156 {0x8,
"BottomDockWidgetArea"_L1},
157 {0xf,
"AllDockWidgetAreas"_L1}
159 return lookupEnum(dockWidgetAreas, v);
166 {0,
"WindowText"_L1},
173 {7,
"BrightText"_L1},
174 {8,
"ButtonText"_L1},
178 {12,
"Highlight"_L1},
179 {13,
"HighlightedText"_L1},
181 {15,
"LinkVisited"_L1},
182 {16,
"AlternateBase"_L1},
184 {18,
"ToolTipBase"_L1},
185 {19,
"ToolTipText"_L1},
186 {20,
"PlaceholderText"_L1},
188 return lookupEnum(colorRoles, v);
278 }
else if (
code !=
'\r') {
293 return c.isSurrogate();
303 str <<
"QString::fromUtf8(";
325 for (
int i = 0; i < r.m_count; ++i)
331 const QString ¶meterName,
332 const QString &indent,
333 const char *returnType) :
334 m_name(name), m_parameterType(parameterType), m_parameterName(parameterName),
335 m_indent(indent), m_return(returnType)
343 str << (f.m_return ? f.m_return :
"void") <<
' ' << f.m_name <<
'('
344 << f.m_parameterType;
345 if (f.m_parameterType.cend()->isLetter())
347 str << f.m_parameterName <<
')' <<
'\n' << f.m_indent <<
"{\n";
350 str <<
"def " << f.m_name <<
"(self, " << f.m_parameterName <<
"):\n";
364 str <<
"} // " << f.m_name <<
"\n\n";
367 str <<
"# " << f.m_name <<
"\n\n";
401 return arg.startsWith(u'Q') && arg !=
"QPoint"_L1 && arg !=
"QSize"_L1;
406 QString result =
"qOverload<"_L1;
407 const auto args = QStringView{parameters}.split(u',');
408 for (qsizetype i = 0, size = args.size(); i < size; ++i) {
409 const auto &arg = args.at(i);
412 const bool constRef = isConstRef(arg);
414 result +=
"const "_L1;
513 return v ? cppTrue : cppFalse;
515 return v ? QStringLiteral(
"True") : QStringLiteral(
"False");
522QString enumValue(
const QString &value)
526 QString fixed = value;
527 fixed.replace(cppQualifier, dot());
endFunctionDefinition(const char *name)
static uint characterCode(QChar c)
static void formatStringBasedConnection(QTextStream &str, const SignalSlot &sender, const SignalSlot &receiver)
static bool isSurrogate(QChar c)
static int formatEscapedNumber(QTextStream &str, uint value, int base, int width, char prefix=0)
static bool isConstRef(const QStringView &arg)
static int formatSpecialCharacter(QTextStream &str, ushort value)
QLatin1StringView dockWidgetArea(int v)
static void formatStringSequence(QTextStream &str, Iterator it, Iterator end, const QString &indent, int escapeIntegerBase, int escapeWidth, char escapePrefix=0)
QLatin1StringView paletteColorRole(int v)
void setLanguage(Language)
static QString formatOverload(const QStringView ¶meters)
QTextStream & operator<<(QTextStream &str, const startFunctionDefinition1 &f)
QTextStream & operator<<(QTextStream &str, const endFunctionDefinition &f)
static void formatMemberFnPtr(QTextStream &str, const SignalSlot &s, OverloadUse useQOverload)
static void formatMemberFnPtrConnection(QTextStream &str, const SignalSlot &sender, const SignalSlot &receiver)
static uint characterCode(char c)
QTextStream & operator<<(QTextStream &str, const repeat &r)
static Language _language
static uint characterCode(uint c)
QLatin1StringView toolbarArea(int v)
QLatin1StringView sizePolicy(int v)
QLatin1StringView lookupEnum(const EnumLookup(&array)[N], int value, int defaultIndex=0)
QString boolValue(bool v)
QLatin1StringView valueString