summaryrefslogtreecommitdiffstats
path: root/src/tools/uic/cpp/cppwriteinitialization.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2018-07-13 09:02:14 +0000
committerJarek Kobus <jaroslaw.kobus@qt.io>2018-07-19 12:38:45 +0000
commitff18b02f21a04f7092b58be04be5a40df3ef993b (patch)
tree66c268bc6bab9c38f27c682f0a3fd4093080da97 /src/tools/uic/cpp/cppwriteinitialization.cpp
parent519fcb38a2b9e2c4490e8a3c740ad43227a71b77 (diff)
uic: Revert the microoptimization patch introducing QStringLiteral
This reverts the following commits: d12d2949d1e4ac08a47928ef27bc45459b3fb104 26c3bec09bccf9006f5ef4945a428d9ef56c1d12 49b08f96e824f49fab9aa5c9a1a0ed582d4558bb We can't easily predict all code paths for QDesigner with such a microoptimization. We also don't want to generate three different string constructions depending on some sophisticated heuristics. [ChangeLog][uic] The -no-stringliteral option is now deprecated and UIC will not generate QStringLiteral anymore. Task-number: QTBUG-65251 Task-number: QTBUG-51602 Change-Id: I34a5a1934a8df19c5c84ac2ba8e5168ce5665037 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/tools/uic/cpp/cppwriteinitialization.cpp')
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp114
1 files changed, 63 insertions, 51 deletions
diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp
index 9ab5fd4eb0..0e980ced1c 100644
--- a/src/tools/uic/cpp/cppwriteinitialization.cpp
+++ b/src/tools/uic/cpp/cppwriteinitialization.cpp
@@ -475,21 +475,6 @@ WriteInitialization::WriteInitialization(Uic *uic) :
{
}
-QString WriteInitialization::writeString(const QString &s, const QString &indent) const
-{
- unsigned flags = 0;
- const QString ret = fixString(s, indent, &flags);
- if (flags & Utf8String)
- return QLatin1String("QString::fromUtf8(") + ret + QLatin1Char(')');
- // MSVC cannot concat L"foo" "bar" (C2308: concatenating mismatched strings),
- // use QLatin1String instead (all platforms to avoid cross-compiling issues).
- if (flags & MultiLineString)
- return QLatin1String("QLatin1String(") + ret + QLatin1Char(')');
- const QLatin1String stringWrapper = m_uic->option().stringLiteral ?
- QLatin1String("QStringLiteral(") : QLatin1String("QLatin1String(");
- return stringWrapper + ret + QLatin1Char(')');
-}
-
void WriteInitialization::acceptUI(DomUI *node)
{
m_actionGroupChain.push(0);
@@ -529,7 +514,7 @@ void WriteInitialization::acceptUI(DomUI *node)
continue;
const QString varConn = connection + QLatin1String("Connection");
- m_output << m_indent << varConn << " = QSqlDatabase::database(" << writeString(connection, m_dindent) << ");\n";
+ m_output << m_indent << varConn << " = QSqlDatabase::database(" << fixString(connection, m_dindent) << ");\n";
}
acceptWidget(node->elementWidget());
@@ -1141,7 +1126,7 @@ QString WriteInitialization::writeStringListProperty(const DomStringList *list)
str << '\n' << m_indent << " << " << trCall(values.at(i), comment);
} else {
for (int i = 0; i < values.size(); ++i)
- str << " << " << writeString(values.at(i), m_dindent);
+ str << " << QString::fromUtf8(" << fixString(values.at(i), m_dindent) << ')';
}
return propertyValue;
}
@@ -1156,8 +1141,8 @@ void WriteInitialization::writeProperties(const QString &varName,
if (m_uic->customWidgetsInfo()->extends(className, QLatin1String("QAxWidget"))) {
DomPropertyMap properties = propertyMap(lst);
if (DomProperty *p = properties.value(QLatin1String("control"))) {
- m_output << m_indent << varName << "->setControl("
- << writeString(toString(p->elementString()), m_dindent) << ");\n";
+ m_output << m_indent << varName << "->setControl(QString::fromUtf8("
+ << fixString(toString(p->elementString()), m_dindent) << "));\n";
}
}
@@ -1168,7 +1153,7 @@ void WriteInitialization::writeProperties(const QString &varName,
}
if (!(flags & WritePropertyIgnoreObjectName))
m_output << m_indent << indent << varName
- << "->setObjectName(" << writeString(varName, m_dindent) << ");\n";
+ << "->setObjectName(QString::fromUtf8(" << fixString(varName, m_dindent) << "));\n";
int leftMargin, topMargin, rightMargin, bottomMargin;
leftMargin = topMargin = rightMargin = bottomMargin = -1;
@@ -1467,8 +1452,8 @@ void WriteInitialization::writeProperties(const QString &varName,
case DomProperty::Url: {
const DomUrl* u = p->elementUrl();
- propertyValue = QString::fromLatin1("QUrl(%1)")
- .arg(writeString(u->elementString()->text(), m_dindent));
+ propertyValue = QString::fromLatin1("QUrl(QString::fromUtf8(%1))")
+ .arg(fixString(u->elementString()->text(), m_dindent));
break;
}
case DomProperty::Brush:
@@ -1572,8 +1557,8 @@ QString WriteInitialization::writeFontProperties(const DomFont *f)
m_output << m_indent << "QFont " << fontName << ";\n";
if (f->hasElementFamily() && !f->elementFamily().isEmpty()) {
- m_output << m_indent << fontName << ".setFamily(" << writeString(f->elementFamily(), m_dindent)
- << ");\n";
+ m_output << m_indent << fontName << ".setFamily(QString::fromUtf8("
+ << fixString(f->elementFamily(), m_dindent) << "));\n";
}
if (f->hasElementPointSize() && f->elementPointSize() > 0) {
m_output << m_indent << fontName << ".setPointSize(" << f->elementPointSize()
@@ -1616,27 +1601,51 @@ QString WriteInitialization::writeFontProperties(const DomFont *f)
}
// Post 4.4 write resource icon
-void WriteInitialization::writeResourceIcon(QTextStream &output,
- const QString &iconName,
- const QString &indent,
- const DomResourceIcon *i) const
-{
- if (i->hasElementNormalOff())
- output << indent << iconName << ".addFile(" << writeString(i->elementNormalOff()->text(), indent) << ", QSize(), QIcon::Normal, QIcon::Off);\n";
- if (i->hasElementNormalOn())
- output << indent << iconName << ".addFile(" << writeString(i->elementNormalOn()->text(), indent) << ", QSize(), QIcon::Normal, QIcon::On);\n";
- if (i->hasElementDisabledOff())
- output << indent << iconName << ".addFile(" << writeString(i->elementDisabledOff()->text(), indent) << ", QSize(), QIcon::Disabled, QIcon::Off);\n";
- if (i->hasElementDisabledOn())
- output << indent << iconName << ".addFile(" << writeString(i->elementDisabledOn()->text(), indent) << ", QSize(), QIcon::Disabled, QIcon::On);\n";
- if (i->hasElementActiveOff())
- output << indent << iconName << ".addFile(" << writeString(i->elementActiveOff()->text(), indent) << ", QSize(), QIcon::Active, QIcon::Off);\n";
- if (i->hasElementActiveOn())
- output << indent << iconName << ".addFile(" << writeString(i->elementActiveOn()->text(), indent) << ", QSize(), QIcon::Active, QIcon::On);\n";
- if (i->hasElementSelectedOff())
- output << indent << iconName << ".addFile(" << writeString(i->elementSelectedOff()->text(), indent) << ", QSize(), QIcon::Selected, QIcon::Off);\n";
- if (i->hasElementSelectedOn())
- output << indent << iconName << ".addFile(" << writeString(i->elementSelectedOn()->text(), indent) << ", QSize(), QIcon::Selected, QIcon::On);\n";
+static void writeResourceIcon(QTextStream &output,
+ const QString &iconName,
+ const QString &indent,
+ const DomResourceIcon *i)
+{
+ if (i->hasElementNormalOff()) {
+ output << indent << iconName << ".addFile(QString::fromUtf8("
+ << fixString(i->elementNormalOff()->text(), indent)
+ << "), QSize(), QIcon::Normal, QIcon::Off);\n";
+ }
+ if (i->hasElementNormalOn()) {
+ output << indent << iconName << ".addFile(QString::fromUtf8("
+ << fixString(i->elementNormalOn()->text(), indent)
+ << "), QSize(), QIcon::Normal, QIcon::On);\n";
+ }
+ if (i->hasElementDisabledOff()) {
+ output << indent << iconName << ".addFile(QString::fromUtf8("
+ << fixString(i->elementDisabledOff()->text(), indent)
+ << "), QSize(), QIcon::Disabled, QIcon::Off);\n";
+ }
+ if (i->hasElementDisabledOn()) {
+ output << indent << iconName << ".addFile(QString::fromUtf8("
+ << fixString(i->elementDisabledOn()->text(), indent)
+ << "), QSize(), QIcon::Disabled, QIcon::On);\n";
+ }
+ if (i->hasElementActiveOff()) {
+ output << indent << iconName << ".addFile(QString::fromUtf8("
+ << fixString(i->elementActiveOff()->text(), indent)
+ << "), QSize(), QIcon::Active, QIcon::Off);\n";
+ }
+ if (i->hasElementActiveOn()) {
+ output << indent << iconName << ".addFile(QString::fromUtf8("
+ << fixString(i->elementActiveOn()->text(), indent)
+ << "), QSize(), QIcon::Active, QIcon::On);\n";
+ }
+ if (i->hasElementSelectedOff()) {
+ output << indent << iconName << ".addFile(QString::fromUtf8("
+ << fixString(i->elementSelectedOff()->text(), indent)
+ << "), QSize(), QIcon::Selected, QIcon::Off);\n";
+ }
+ if (i->hasElementSelectedOn()) {
+ output << indent << iconName << ".addFile(QString::fromUtf8("
+ << fixString(i->elementSelectedOn()->text(), indent)
+ << "), QSize(), QIcon::Selected, QIcon::On);\n";
+ }
}
QString WriteInitialization::writeIconProperties(const DomResourceIcon *i)
@@ -1658,7 +1667,7 @@ QString WriteInitialization::writeIconProperties(const DomResourceIcon *i)
writeResourceIcon(m_output, iconName, m_indent, i);
} else {
// Theme: Generate code to check the theme and default to resource
- const QString themeIconName = writeString(i->attributeTheme(), QString());
+ const QString themeIconName = fixString(i->attributeTheme(), QString());
if (iconHasStatePixmaps(i)) {
// Theme + default state pixmaps:
// Generate code to check the theme and default to state pixmaps
@@ -1670,8 +1679,8 @@ QString WriteInitialization::writeIconProperties(const DomResourceIcon *i)
m_output << "QString ";
m_firstThemeIcon = false;
}
- m_output << themeNameStringVariableC << " = "
- << themeIconName << ";\n";
+ m_output << themeNameStringVariableC << " = QString::fromUtf8("
+ << themeIconName << ");\n";
m_output << m_indent << "if (QIcon::hasThemeIcon("
<< themeNameStringVariableC
<< ")) {\n"
@@ -1682,8 +1691,8 @@ QString WriteInitialization::writeIconProperties(const DomResourceIcon *i)
} else {
// Theme, but no state pixmaps: Construct from theme directly.
m_output << m_indent << "QIcon " << iconName
- << "(QIcon::fromTheme("
- << themeIconName << "));\n";
+ << "(QIcon::fromTheme(QString::fromUtf8("
+ << themeIconName << ")));\n";
} // Theme, but not state
} // >= 4.4
} else { // pre-4.4 legacy
@@ -2323,7 +2332,10 @@ QString WriteInitialization::noTrCall(DomString *str, const QString &defaultStri
return QString();
if (str)
value = str->text();
- return writeString(value, m_dindent);
+ QString ret = QLatin1String("QString::fromUtf8(");
+ ret += fixString(value, m_dindent);
+ ret += QLatin1Char(')');
+ return ret;
}
QString WriteInitialization::autoTrCall(DomString *str, const QString &defaultString) const