summaryrefslogtreecommitdiffstats
path: root/src/tools/uic/shared
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-11-28 11:30:41 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-04-05 08:29:26 +0000
commit5a5a96560e36af6b5d7ab375651b8c622bb5a7c3 (patch)
treed5c8fe5c175727f6c1e339ec5b205e6b075edd27 /src/tools/uic/shared
parent5b8676578de276bf5db68d08ef8d7fb65c8ec8e0 (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.cpp17
-rw-r--r--src/tools/uic/shared/language.h10
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