aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-07-25 15:20:46 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-07-26 11:45:35 +0200
commit65e48138e166c3575dfe23dfec259e112302fd28 (patch)
treef4bb53c568553237804c547d8795506dad46c95b
parent942768a87eaaf4c0ea6a60a1eda06a7aa93859fc (diff)
PySide6: Add QWizardPage::registerField() with a signal instanc
Fixes: PYSIDE-2384 Change-Id: Iad7a26385b40267308c287b8f6a4915972468574 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-rw-r--r--sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml8
-rw-r--r--sources/pyside6/PySide6/glue/qtwidgets.cpp12
2 files changed, 20 insertions, 0 deletions
diff --git a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml
index c06a01fea..5f28d9ce6 100644
--- a/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml
+++ b/sources/pyside6/PySide6/QtWidgets/typesystem_widgets_common.xml
@@ -522,6 +522,9 @@
</modify-function>
</object-type>
<object-type name="QWizardPage">
+ <extra-includes>
+ <include file-name="pysidesignal.h" location="global"/>
+ </extra-includes>
<modify-function signature="wizard()const">
<modify-argument index="this">
<parent index="return" action="add"/>
@@ -531,6 +534,11 @@
<modify-argument index="3" pyi-type="str" rename="property"/>
<modify-argument index="4" pyi-type="str" rename="changed_signal"/>
</modify-function>
+ <add-function signature="registerField(const QString&amp;@name@,QWidget*@widget@,const char*@property@,PySideSignalInstance@changedSignal@)" allow-thread="yes">
+ <modify-argument index="3" pyi-type="str"/>
+ <inject-code class="target" position="beginning" file="../glue/qtwidgets.cpp"
+ snippet="qwizardpage-registerfield"/>
+ </add-function>
</object-type>
<object-type name="QFocusFrame">
<modify-function signature="setWidget(QWidget*)">
diff --git a/sources/pyside6/PySide6/glue/qtwidgets.cpp b/sources/pyside6/PySide6/glue/qtwidgets.cpp
index 3d1c1c3b2..1139a2308 100644
--- a/sources/pyside6/PySide6/glue/qtwidgets.cpp
+++ b/sources/pyside6/PySide6/glue/qtwidgets.cpp
@@ -752,6 +752,18 @@ const char *styleOptionType(const QStyleOption *o)
}
// @snippet qstyleoption-typename
+// @snippet qwizardpage-registerfield
+auto *signalInst = reinterpret_cast<PySideSignalInstance *>(%PYARG_4);
+const auto data = PySide::Signal::getEmitterData(signalInst);
+if (data.methodIndex == -1) {
+ PyErr_SetString(PyExc_RuntimeError, "QWizardPage::registerField(): Unable to retrieve signal emitter.");
+ return nullptr;
+}
+const auto method = data.emitter->metaObject()->method(data.methodIndex);
+const QByteArray signature = QByteArrayLiteral("2") + method.methodSignature();
+%CPPSELF.%FUNCTION_NAME(%1, %2, %3, signature.constData());
+// @snippet qwizardpage-registerfield
+
/*********************************************************************
* CONVERSIONS
********************************************************************/