summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-05-25 12:39:51 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-05-26 00:11:40 +0200
commit613b52bfee1876b43829072abb9dfb4423e8357f (patch)
treee5470fc7fd09219dedeef5d555f9638552cc3690 /src
parent1e39b86bdc20a6dba92af9707c7aac9000d773c6 (diff)
uic: Fix string list properties for Python
Use the opportunity to modernize the code to use an initializer list instead of stream operators. This then makes it easier to generate a comma-delimited list that works for Python as well. Fixes: PYSIDE-1942 Change-Id: I5291b55bd0685e06ad62e52c7ebccffce98e9c23 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp
index 4d43e904e1..e9ad0352af 100644
--- a/src/tools/uic/cpp/cppwriteinitialization.cpp
+++ b/src/tools/uic/cpp/cppwriteinitialization.cpp
@@ -1128,18 +1128,35 @@ QString WriteInitialization::writeStringListProperty(const DomStringList *list)
{
QString propertyValue;
QTextStream str(&propertyValue);
- str << "QStringList()";
+ char trailingDelimiter = '}';
+ switch (language::language()) {
+ case Language::Cpp:
+ str << "QStringList{";
+ break;
+ case Language::Python:
+ str << '[';
+ trailingDelimiter = ']';
+ break;
+ }
const QStringList values = list->elementString();
- if (values.isEmpty())
- return propertyValue;
- if (needsTranslation(list)) {
- const QString comment = list->attributeComment();
- for (int i = 0; i < values.size(); ++i)
- str << '\n' << m_indent << " << " << trCall(values.at(i), comment);
- } else {
- for (int i = 0; i < values.size(); ++i)
- str << " << " << language::qstring(values.at(i), m_dindent);
+ if (!values.isEmpty()) {
+ if (needsTranslation(list)) {
+ const QString comment = list->attributeComment();
+ const qsizetype last = values.size() - 1;
+ for (qsizetype i = 0; i <= last; ++i) {
+ str << '\n' << m_indent << " " << trCall(values.at(i), comment);
+ if (i != last)
+ str << ',';
+ }
+ } else {
+ for (qsizetype i = 0; i < values.size(); ++i) {
+ if (i)
+ str << ", ";
+ str << language::qstring(values.at(i), m_dindent);
+ }
+ }
}
+ str << trailingDelimiter;
return propertyValue;
}