diff options
author | Friedemann Kleint <[email protected]> | 2024-09-18 11:10:45 +0200 |
---|---|---|
committer | Friedemann Kleint <[email protected]> | 2024-09-18 12:04:26 +0200 |
commit | bbbe3b8ba777bd90e777f0e3ca9f4ab6821ed28e (patch) | |
tree | d2b910098c183f56250ba623efce4ab226d6f4c6 /sources | |
parent | 359c8908f4d33dd3de217b6323bc6e171addd085 (diff) |
PySide6/SerialBus: Fix crash in CAN bus example
Add snippet for QCanBus::availableDevices(QString*),
adapting to qtserialbus/0eab51e1e451f92fbaf0df69793cbb4137a5ece4 .
Task-number: PYSIDE-2620
Change-Id: I0667931000a8446db2e14d72fbba254a6866cc3c
Reviewed-by: Cristian Maureira-Fredes <[email protected]>
Diffstat (limited to 'sources')
-rw-r--r-- | sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml | 18 | ||||
-rw-r--r-- | sources/pyside6/PySide6/glue/qtserialbus.cpp | 10 |
2 files changed, 26 insertions, 2 deletions
diff --git a/sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml b/sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml index 365d26d68..186141ff2 100644 --- a/sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml +++ b/sources/pyside6/PySide6/QtSerialBus/typesystem_serialbus.xml @@ -19,6 +19,21 @@ <object-type name="QCanBus"> <!-- Remove errorMessage argument, return tuple instead. --> + <modify-function signature="availableDevices(QString*)const"> + <modify-argument index="1"> + <remove-default-expression/> + <remove-argument/> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="tuple"/> + </modify-argument> + <inject-code class="target" position="beginning" + file="../glue/qtserialbus.cpp" snippet="qcanbus-available-devices"/> + <inject-documentation format="target" mode="append"> + The function returns a tuple of (device_list, error_string). + </inject-documentation> + </modify-function> + <!-- Remove errorMessage argument, return tuple instead. --> <modify-function signature="availableDevices(QString,QString*)const"> <modify-argument index="2"> <remove-default-expression/> @@ -28,11 +43,12 @@ <replace-type modified-type="tuple"/> </modify-argument> <inject-code class="target" position="beginning" - file="../glue/qtserialbus.cpp" snippet="qcanbus-available-devices"/> + file="../glue/qtserialbus.cpp" snippet="qcanbus-available-devices-plugin"/> <inject-documentation format="target" mode="append"> The function returns a tuple of (device_list, error_string). </inject-documentation> </modify-function> + <modify-function signature="createDevice(QString,QString,QString*)const"> <modify-argument index="3"> <remove-default-expression/> diff --git a/sources/pyside6/PySide6/glue/qtserialbus.cpp b/sources/pyside6/PySide6/glue/qtserialbus.cpp index b5b491f49..cfff36056 100644 --- a/sources/pyside6/PySide6/glue/qtserialbus.cpp +++ b/sources/pyside6/PySide6/glue/qtserialbus.cpp @@ -7,12 +7,20 @@ // @snippet qcanbus-available-devices QString errorMessage; -const QList<QCanBusDeviceInfo> result = %CPPSELF.%FUNCTION_NAME(%1, &errorMessage); +const QList<QCanBusDeviceInfo> result = %CPPSELF.%FUNCTION_NAME(&errorMessage); %PYARG_0 = PyTuple_New(2); PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[QList<QCanBusDeviceInfo>](result)); PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QString](errorMessage)); // @snippet qcanbus-available-devices +// @snippet qcanbus-available-devices-plugin +QString errorMessage; +const QList<QCanBusDeviceInfo> result = %CPPSELF.%FUNCTION_NAME(%1, &errorMessage); +%PYARG_0 = PyTuple_New(2); +PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[QList<QCanBusDeviceInfo>](result)); +PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QString](errorMessage)); +// @snippet qcanbus-available-devices-plugin + // @snippet qcanbus-createdevice PyObject *pyDevice{}; QString errorMessage; |