diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-11-28 11:30:41 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2019-04-05 08:29:26 +0000 |
commit | 5a5a96560e36af6b5d7ab375651b8c622bb5a7c3 (patch) | |
tree | d5c8fe5c175727f6c1e339ec5b205e6b075edd27 /src/tools/uic/shared | |
parent | 5b8676578de276bf5db68d08ef8d7fb65c8ec8e0 (diff) |
uic: Adapt connection syntax to Python
Extend WriteInitialization::findDeclaration() to return the class name
(on this occasion preparing for generating Qt 5 connection syntax) and
add a helper function for formatting the connection.
Task-number: PYSIDE-797
Change-Id: I7507f604c8275c93d347b7a6a5d5b5a2a5f3ffd5
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'src/tools/uic/shared')
-rw-r--r-- | src/tools/uic/shared/language.cpp | 17 | ||||
-rw-r--r-- | src/tools/uic/shared/language.h | 10 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/tools/uic/shared/language.cpp b/src/tools/uic/shared/language.cpp index d05f3c935f..fe44f95285 100644 --- a/src/tools/uic/shared/language.cpp +++ b/src/tools/uic/shared/language.cpp @@ -384,4 +384,21 @@ void _formatStackVariable(QTextStream &str, const char *className, QStringView v } } +void formatConnection(QTextStream &str, const SignalSlot &sender, const SignalSlot &receiver) +{ + switch (language()) { + case Language::Cpp: + str << "QObject::connect(" << sender.name << ", SIGNAL("<< sender.signature + << "), " << receiver.name << ", SLOT("<< receiver.signature << "))"; + break; + case Language::Python: + str << sender.name << '.' + << sender.signature.leftRef(sender.signature.indexOf(QLatin1Char('('))) + << ".connect(" << receiver.name << '.' + << receiver.signature.leftRef(receiver.signature.indexOf(QLatin1Char('('))) + << ')'; + break; + } +} + } // namespace language diff --git a/src/tools/uic/shared/language.h b/src/tools/uic/shared/language.h index a1c871a549..eb50a2db7f 100644 --- a/src/tools/uic/shared/language.h +++ b/src/tools/uic/shared/language.h @@ -31,6 +31,7 @@ #include <QtCore/qstring.h> #include <QtCore/qstringview.h> +#include <QtCore/qstring.h> QT_FORWARD_DECLARE_CLASS(QTextStream) @@ -189,6 +190,15 @@ inline QTextStream &operator<<(QTextStream &str, const _stackVariable<withInitPa using stackVariable = _stackVariable<false>; using stackVariableWithInitParameters = _stackVariable<true>; +struct SignalSlot +{ + QString name; + QString signature; + QString className; +}; + +void formatConnection(QTextStream &str, const SignalSlot &sender, const SignalSlot &receiver); + } // namespace language #endif // LANGUAGE_H |