summaryrefslogtreecommitdiffstats
path: root/src/tools/uic/main.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-04-19 11:23:55 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-04 08:12:33 +0200
commitda3cb1deb6c752f8e4c05434e3451432e5d787ba (patch)
treec2f7992eeee39617102cb864f798ebd7c06ec5f0 /src/tools/uic/main.cpp
parent8231614661e1eecaabcf33d1e332809556e86089 (diff)
uic: Generate Qt 5 connection syntax
Add a enum and formatting for member function pointer based connections. Now preferably use member function pointer for Qt classes or parameterless connections. This should not require qOverload() within Qt classes after the Signal/Slot disambiguation. Add command line option to force either syntax for all connections. Task-number: QTBUG-76375 Change-Id: Icdb4051e1173172a71cd536bdbc7d1ab1edf267d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/tools/uic/main.cpp')
-rw-r--r--src/tools/uic/main.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/tools/uic/main.cpp b/src/tools/uic/main.cpp
index 6f342fb398..81492bbf45 100644
--- a/src/tools/uic/main.cpp
+++ b/src/tools/uic/main.cpp
@@ -100,6 +100,11 @@ int runUic(int argc, char *argv[])
generatorOption.setValueName(QStringLiteral("python|cpp"));
parser.addOption(generatorOption);
+ QCommandLineOption connectionsOption(QStringList{QStringLiteral("c"), QStringLiteral("connections")});
+ connectionsOption.setDescription(QStringLiteral("Connection syntax."));
+ connectionsOption.setValueName(QStringLiteral("pmf|string"));
+ parser.addOption(connectionsOption);
+
QCommandLineOption idBasedOption(QStringLiteral("idbased"));
idBasedOption.setDescription(QStringLiteral("Use id based function for i18n"));
parser.addOption(idBasedOption);
@@ -122,6 +127,13 @@ int runUic(int argc, char *argv[])
driver.option().postfix = parser.value(postfixOption);
driver.option().translateFunction = parser.value(translateOption);
driver.option().includeFile = parser.value(includeOption);
+ if (parser.isSet(connectionsOption)) {
+ const auto value = parser.value(connectionsOption);
+ if (value == QLatin1String("pmf"))
+ driver.option().forceMemberFnPtrConnectionSyntax = 1;
+ else if (value == QLatin1String("string"))
+ driver.option().forceStringConnectionSyntax = 1;
+ }
Language language = Language::Cpp;
if (parser.isSet(generatorOption)) {