diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-07-25 15:20:46 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-07-26 11:45:35 +0200 |
| commit | 65e48138e166c3575dfe23dfec259e112302fd28 (patch) | |
| tree | f4bb53c568553237804c547d8795506dad46c95b | |
| parent | 942768a87eaaf4c0ea6a60a1eda06a7aa93859fc (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.xml | 8 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtwidgets.cpp | 12 |
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&@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 ********************************************************************/ |
