summaryrefslogtreecommitdiffstats
path: root/src/tools/uic/cpp
Commit message (Collapse)AuthorAgeFilesLines
* uic: Fix pixmap functions for QIconFriedemann Kleint2018-09-062-2/+57
| | | | | | Task-number: QTBUG-8563 Change-Id: I69b16ac2327fee6dd6f26845bdda60ad4dde56fa Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* uic: Fix clang-tidy warningsFriedemann Kleint2018-08-033-57/+50
| | | | | | | | | | - Simplify/streamline if statmenents - Change else if to if after return/break/continue - Use isEmpty() for containers instead of checking size() - Replace index-based loops by range-based for Change-Id: I008228a99082a4d0e27be9f6c6af392602140b2f Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* uic: Revert the microoptimization patch introducing QStringLiteralJarek Kobus2018-07-192-54/+63
| | | | | | | | | | | | | | | | | | | | 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>
* uic: Add the include for QIcon conditionallyJarek Kobus2018-03-061-0/+2
| | | | | | Task-number: QTBUG-66753 Change-Id: I31bd821396b59c8e83e19e02634cf1440a271215 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* uic: Support id-based translationsFriedemann Kleint2018-01-182-6/+9
| | | | | | | | | Use Ids from newly introduced id attribute depending on the global form setting. Change-Id: I0a5094d5543c0714c88511fa159b60afc9be3c81 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Don't generate QAction include unconditionallyJarek Kobus2018-01-152-1/+25
| | | | | | | | Generate it only when the form contains some actions. Change-Id: Ic1d64003ccff6102174771c04999cf7c90ac2ae8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Don't generate QButtonGroup include unconditionallyJarek Kobus2018-01-151-1/+2
| | | | | | | | Add it only when ui contains button groups. Change-Id: I60a249a36565e6c7c3f7cb51bc146317bc7ddbe5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Don't generate QHeaderView include unconditionallyJarek Kobus2018-01-151-1/+8
| | | | | | | | Generate it only when needed. Change-Id: I7a89b18ec0f2ee7d55fcad1b3f9701269d7616ec Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-052-2/+1
|\ | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/minimum-linux.S src/network/access/qhttpthreaddelegate.cpp src/widgets/kernel/qwidgetwindow.cpp Change-Id: Id2e817e85f85c68f5482c9a12912d35590f9d5f8
| * uic: Fix clazy warnings clazy-qstring-left, clazy-unused-non-trivial-variableFriedemann Kleint2017-10-272-2/+1
| | | | | | | | | | | | Change-Id: Ibbb9a85dba7773bb70298906bc370b4e24d7d901 Reviewed-by: Robert Loehning <robert.loehning@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | Merge remote-tracking branch 'origin/5.10' into devAllan Sandfeld Jensen2017-10-241-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/windows/qwindowsmousehandler.cpp src/plugins/platforms/xcb/qxcbimage.cpp tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp tests/manual/qtabletevent/regular_widgets/main.cpp Done-with: Friedemann Kleint<Friedemann.Kleint@qt.io> Done-with: Mårten Nordheim<marten.nordheim@qt.io> Change-Id: I5b2499513a92c590ed0756f7d2e93c35a64b7f30
| * Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-161-1/+1
| |\ | | | | | | | | | Change-Id: I3cf73c53cf131d0babfb558c2507bed0e0fc5f08
| | * Remove some unused, local variablesJędrzej Nowacki2017-10-141-1/+1
| | | | | | | | | | | | | | | Change-Id: I453162d2d396bb3427064d3b1593bb6c71376605 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | Replace Q_DECL_OVERRIDE with override where possibleKevin Funk2017-09-193-30/+30
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remaining uses of Q_DECL_OVERRIDE are in: src/corelib/global/qcompilerdetection.h src/corelib/global/qglobal.cpp doc/global/qt-cpp-defines.qdocconf (definition and documentation of Q_DECL_OVERRIDE) tests/manual/qcursor/qcursorhighdpi/main.cpp (a test executable compilable both under Qt4 and Qt5) Change-Id: Ib9b05d829add69e98a86238274b6a1fcb19b49ba Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | uic: Use nullptr instead of Q_NULLPTR in generated codeAlexander Volkov2017-08-281-1/+1
| | | | | | | | | | | | | | | | nullptr can be used directly in the Qt code since Qt 5.7. Use it in generated code for consistency. Change-Id: I249aeaf0a39b46ce1106b29d3ea4569a399908b7 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | uic: Add -no-stringliteral optionAlexander Volkov2017-08-032-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | ... and use it when building shared libraries and plugins. It prevents application crashes in cases when libraries and plugins are unloaded and their strings are still used by the main application. Task-number: QTBUG-51602 Change-Id: I4af79183f18c5ed6142d55af02a36fe4334f3fee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | uic: Don't clear and readd combobox items in retranslateUiJarek Kobus2017-07-051-46/+16
| | | | | | | | | | | | | | Task-number: QTBUG-61778 Change-Id: If7a15ef69fcfe459f177ff8b671f53a6022ab335 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-191-3/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qprocess_unix.cpp src/corelib/io/qprocess_win.cpp src/plugins/platforms/android/qandroidplatformintegration.h src/plugins/platforms/windows/qwindowscontext.cpp src/plugins/platforms/windows/windows.pri src/tools/uic/cpp/cppwriteinitialization.cpp src/widgets/doc/src/widgets-and-layouts/gallery.qdoc Change-Id: I8d0834c77f350ea7540140c2c7f372814afc2d0f
| * uic: Fix possible crash when reading the size hint propertyJarek Kobus2017-06-131-3/+4
| | | | | | | | | | | | | | | | It may crash on (probably a bit broken) qtbase/src/printsupport/dialogs/qpagesetupwidget.ui Change-Id: Ibca95a3d8aa4899adbc952aee7b46621ac888c6a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Remove ancient embedded pixmaps and scripts from uicJarek Kobus2017-06-1215-932/+10
| | | | | | | | | | Change-Id: Iec06e1af91a6d61226ae484325b1ec82810d634d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | uic: re-flow a lineMarc Mutz2017-06-021-1/+2
| | | | | | | | | | | | | | | | The body of an if statement should not be on the same line as the condition. Change-Id: I45614e16d8f0f860824daff9f7b5ba7776535d99 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | uic: standardize property lookups on QHash::value()Marc Mutz2017-06-021-17/+18
| | | | | | | | | | | | | | | | | | | | | | | | This is the pattern used throughout the rest of the uic codebase, and is both more efficient (one lookup instead of two with an additional contains() call) and will allow porting to another container. In writeSpacerItem(), also gently optimize string handling. Change-Id: I20c7914089a699d2161d648b16d938e3a001ace3 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | uic: Port Ui classes to QVectorFriedemann Kleint2017-04-132-16/+16
|/ | | | | | | | | | Regenerate the ui4* files after a change in qttools replacing QList by QVector in the Dom* classes with the exception of QList<DomProperty *> since that affects the public interfaces of QAbstractFormBuilder. Change-Id: I0922127fb911a5abc125d93ef97a0b22ff94788a Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Use QStringBuilder moreAnton Kudryavtsev2017-03-301-10/+7
| | | | | Change-Id: If5283e364e921d99ffa7a8fa1abb07356a4a2682 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Make uic handle -no-feature-shortcutPaul Olav Tvete2017-03-061-0/+2
| | | | | Change-Id: I0f8c9fdc8b0fe573443cfc126f21e473544ddcba Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-161-0/+1
|\ | | | | | | | | | | | | | | | | Conflicts: src/corelib/plugin/qlibrary_unix.cpp src/plugins/platforms/xcb/qxcbconnection.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp Change-Id: I632c400d909f8c204f55743aadc7886af2f15dfb
| * Add Q_ASSERT before dereference pointerJesus Fernandez2017-02-141-0/+1
| | | | | | | | | | | | | | | | | | | | Fix Null pointer dereferences (NULL_RETURNS) CID 176640: Null pointer dereferences (NULL_RETURNS) Assigning: "p" = null return value from "value". Change-Id: I3af9aae3bbebd6f4de90854ba56cd601669b1b5a Coverity-Id: 176640 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Use QString::asprintf(), QStringBuilder, and the multi-arg overload of ↵Alexander Volkov2017-01-121-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | QString::arg() ... instead of sequential .arg(const QString &) callings. It saves memory allocations and prevents unexpected results if replacing strings contain place markers. Found with clazy's qstring-arg check. Change-Id: I3912275a6e11c6fb7559ff5623f2e8cde9b7f07a Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-09-151-1/+1
|\| | | | | | | | | | | | | | | | | Conflicts: configure.json mkspecs/macx-tvos-clang/qmake.conf mkspecs/macx-watchos-clang/qmake.conf Change-Id: Iaf32339ace59dff9ed344972472744c55d75025c
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-051-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qt_common.prf src/plugins/platforms/windows/qwindowsdialoghelpers.cpp Change-Id: I03b92b6b89ecc5a8db7c95f04ebb92ed198098a8
| | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-09-051-1/+1
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/testlib/selftests/generate_expected_output.py Change-Id: If856162abf9a24ae2c9946d336a7d1da03520fa7
| | | * uic: generate translate calls with Q_NULLPTR instead of 0Dyami Caliri2016-09-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | uic should use Q_NULLPTR instead of 0 as the default disambiguation context. Task-number: QTBUG-45291 Change-Id: I889182c7fe1c4be3336f3cd645aa60838863c633 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | | uic: use a real ordered setMarc Mutz2016-09-122-13/+15
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... instead of QMap<Key, bool>. Since Qt doesn't have such a container, use std::set instead, which also simplifies some code, in particular, because, unlike the Qt containers, it does the right thing on attempted duplicate insertion: nothing. Saves 6.5KiB in text size (1.1% of total) on optimized GCC 5.3 Linux AMD64 builds. Change-Id: I9578a9a58c1c06abe58f22a5b6127d43c2f4be12 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | uic: prune unused includesOswald Buddenhagen2016-08-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | incidentally, this helps with building in feature-reduced configurations. Change-Id: I2f523cff92985539383970e137df12d86c20a626 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | fix build with various QT_NO_* definesNick Shaforostoff2016-08-261-0/+4
| | | | | | | | | | | | | | | | | | | | | Done-with: Andriy Gerasika <andriy.gerasika@gmail.com> Change-Id: I90883a491dbddb005c3d756c339e42285d50e437 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Merge dev into 5.8Oswald Buddenhagen2016-08-222-23/+12
|\ \ \ | | | | | | | | | | | | Change-Id: I41ee7b50534b01cf042bed8bb8824ba2e5026a29
| * | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-161-1/+5
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/doc/src/qmake-manual.qdoc src/corelib/global/qglobal.cpp src/corelib/tools/qstring.cpp src/network/socket/qabstractsocket.cpp src/network/socket/qnativesocketengine_unix.cpp src/plugins/platforms/eglfs/api/qeglfsglobal.h Change-Id: Id5dfdbd30fa996f9b4b66a0b030b7d3b8c0ef288
| | * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-101-1/+5
| | |\| | | | | | | | | | | | | Change-Id: I1a63523de158757964b6fb5ea026cf69a6c5ddcf
| | | * Always generate size hint for spacer itemsJarek Kobus2016-08-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-55008 Change-Id: I53c86b64aa3c0a3e5f80551baefe775c2d4b1e90 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | Remove last uses of Java-style (non-mutable) iterators from QtBaseMarc Mutz2016-08-132-22/+7
| | | | | | | | | | | | | | | | | | | | Change-Id: I7531ffd4f2d5b2193bb6231c743ff0a074618b99 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | | Use QStringRef to optimize memory allocationAnton Kudryavtsev2016-08-181-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | Replace substring functions that return QString with corresponding functions that return QStringRef. Change-Id: I3c485f89352a1ee66076fba74fd486da9349c354 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devEdward Welbourne2016-07-192-49/+38
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/library/qmakebuiltins.cpp qmake/library/qmakeevaluator.cpp qmake/library/qmakeevaluator.h qmake/project.h QMakeEvaluator: * evaluateConditional(): one side changed return type, the other changed a parameter type. * split_value_list(): one side changed a parameter adjacent to where ... * expandVariableReferences(): ... the other killed one overload and changed the survivor src/corelib/io/qlockfile_unix.cpp One side changed a #if condition, the other moved NETBSD's part of what it controlled. src/corelib/tools/qdatetime.cpp One side fixed a reachable Q_UNREACHABLE in toMSecsSinceEpoch(), the other moved it from the private class to the public one, in the midst of the "short date-time" optimization, which confused diff entirely. One side changed a QStringLiteral to QLatin1String, the other rewrote adjoining code. src/network/kernel/qauthenticator.cpp Both rewrote a line, equivalently; kept the dev version. src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h One side changed #if-ery that the other removed. tools/configure/configureapp.cpp One side added a check to -target parsing; the other killed -target. tests/auto/testlib/selftests/expected_cmptest.lightxml tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt tests/auto/testlib/selftests/expected_cmptest.xml tests/auto/testlib/selftests/expected_cmptest.xunitxml Regenerated using generate_expected_output.py I note that quite a few other expected_* come out changed, now. There was no git-conflict in src/widgets/kernel/qformlayout.cpp but it didn't compile; one side removed some unused methods; the other found uses for one of them. Put FixedColumnMatrix<>::removeRow(int) back for its new user. Change-Id: I8cc2a71add48c0a848e13cfc47b5a7754e8ca584
| * | Optimize string usageAnton Kudryavtsev2016-07-151-43/+35
| | | | | | | | | | | | | | | | | | | | | | | | Use QStringBuilder more. Use QL1S directly, without QString construction. Change-Id: Iad844391367681fc1013b9725403d009e7c346e6 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| * | Tools: replace QString::trimmed() with QStringRef::trimmed()Anton Kudryavtsev2016-07-052-6/+3
| | | | | | | | | | | | | | | | | | | | | ... where it's possible. Reduce allocations. Change-Id: I9908d9d65177d116a8a54146274a74edb801543e Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * | qmake/tools: port the last remaining Q_FOREACH loops and add QT_NO_FOREACHMarc Mutz2016-05-111-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Port the last four remaining Q_FOREACH users in qmake and uic to C++11 range-for and mark all qtbase tools (incl. qmake) as Q_FOREACH-free, using QT_NO_FOREACH. Change-Id: Ief4e5877269e7a853e4cf05e58861a448e822d3d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-03-221-1/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/common/wince/qplatformdefs.h src/plugins/platforms/directfb/qdirectfbbackingstore.cpp src/plugins/platforms/xcb/qxcbbackingstore.cpp Change-Id: Ied4d31264a9afca9514b51a7eb1494c28712793c
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-111-1/+4
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change partially reverts 1bfc7f68 about QT_HAS_BUILTIN define and undef in src/corelib/tools/qsimd_p.h. This change is also squashed with "Fall back to c++11 standard compiler flag for host builds" which is done by Peter Seiderer. Conflicts: mkspecs/features/default_post.prf src/3rdparty/sqlite/0001-Fixing-the-SQLite3-build-for-WEC2013-again.patch src/3rdparty/sqlite/sqlite3.c src/corelib/tools/qsimd_p.h src/gui/kernel/qevent.cpp src/gui/kernel/qwindowsysteminterface.cpp src/gui/kernel/qwindowsysteminterface_p.h src/plugins/bearer/blackberry/blackberry.pro src/plugins/platforms/cocoa/qcocoasystemsettings.mm src/plugins/platformthemes/gtk2/gtk2.pro src/plugins/styles/bb10style/bb10style.pro src/sql/drivers/sqlite2/qsql_sqlite2.cpp tools/configure/configureapp.cpp Task-number: QTBUG-51644 Done-with: Peter Seiderer <ps.report@gmx.net> Change-Id: I6100d6ace31b2e8d41a95f0b5d5ebf8f1fd88b44
| | * Generate QVariant::fromValue(enum_value) for enum valuesJarek Kobus2016-03-091-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | Instead of just QVariant(enum_value). Task-number: QTBUG-49383 Change-Id: Id57c65b68d4328816046bc35301dc6afba47b727 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | | QLatin1String: add at()/op[]/mid()/right()/left()Marc Mutz2016-02-191-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QLatin1String can be used as a string-view-like type. When attempting to do so in uic, mid() and at() were found to be missing. Added the others for completeness. Use the new functions in uic, for which they were originally conceived. [ChangeLog][QtCore][QLatin1String] Added at(), operator[](), mid(), right(), left(). Change-Id: I4cfe3e9ed1157dedee754b2012d9678fe72b161e Reviewed-by: Milian Wolff <milian.wolff@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | uic: optimize string handling in WriteInitialization::acceptWidget()Marc Mutz2016-02-191-20/+22
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of building QStringLists out of statically-known US-ASCII strings, use C arrays of QLatin1String instead. QLatin1String is constexpr, so these tables, while causing relocations, do not require runtime initialization. Using QStringBuilder, these QLatin1Strings are almost a drop-in replacement for the QStrings used before. Effects on optimized GCC 5.3 Linux AMD64 builds: $ size bin/uic-* text data bss dec hex filename 567104 31776 56 598936 92398 bin/uic-00-before 565829 31944 24 597797 91f25 bin/uic-01-after Change-Id: I469c62b0e8966731d7ac2fa092f4b4cd8ddb79f1 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>