diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-04-19 11:23:55 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-05-04 08:12:33 +0200 |
commit | da3cb1deb6c752f8e4c05434e3451432e5d787ba (patch) | |
tree | c2f7992eeee39617102cb864f798ebd7c06ec5f0 /src/tools/uic/main.cpp | |
parent | 8231614661e1eecaabcf33d1e332809556e86089 (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.cpp | 12 |
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)) { |