diff options
Diffstat (limited to 'sources/pyside6/PySide6')
| -rw-r--r-- | sources/pyside6/PySide6/QtCore/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/QtCore/typesystem_core_common.xml | 19 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtcore.cpp | 20 |
3 files changed, 39 insertions, 1 deletions
diff --git a/sources/pyside6/PySide6/QtCore/CMakeLists.txt b/sources/pyside6/PySide6/QtCore/CMakeLists.txt index 369e81865..d985b9778 100644 --- a/sources/pyside6/PySide6/QtCore/CMakeLists.txt +++ b/sources/pyside6/PySide6/QtCore/CMakeLists.txt @@ -118,6 +118,7 @@ ${QtCore_GEN_DIR}/qmimedatabase_wrapper.cpp ${QtCore_GEN_DIR}/qmimetype_wrapper.cpp ${QtCore_GEN_DIR}/qmodelindex_wrapper.cpp ${QtCore_GEN_DIR}/qmodelroledata_wrapper.cpp +${QtCore_GEN_DIR}/qmodelroledataspan_wrapper.cpp ${QtCore_GEN_DIR}/qmutex_wrapper.cpp ${QtCore_GEN_DIR}/qnativeipckey_wrapper.cpp ${QtCore_GEN_DIR}/qobject_wrapper.cpp diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml index f93f1b49e..c830bf852 100644 --- a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml +++ b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml @@ -1643,7 +1643,24 @@ <modify-function signature="exit(int)" allow-thread="yes"/> </object-type> - <value-type name="QModelRoleData"/> + <value-type name="QModelRoleData"> + <add-function signature="setData(const QVariant &@data@)"> + <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" + snippet="qmodelroledata-setdata"/> + </add-function> + </value-type> + + <value-type name="QModelRoleDataSpan"> + <modify-function signature="dataForRole(int)const" remove="all"/> + <add-function signature="__len__"> + <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" + snippet="qmodelroledataspan-len"/> + </add-function> + <add-function signature="__getitem__"> + <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" + snippet="qmodelroledataspan-getitem"/> + </add-function> + </value-type> <!-- Register meta type for QML properties --> <object-type name="QAbstractItemModel" qt-register-metatype="yes"> diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index 4f0556d54..56d813b7e 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -565,6 +565,26 @@ Py_XDECREF(result); return !result ? -1 : 0; // @snippet qbitarray-setitem +// @snippet qmodelroledata-setdata +// Call template <typename T> void QModelRoleData::setData(T &&value) +%CPPSELF.%FUNCTION_NAME(%1); +// @snippet qmodelroledata-setdata + +// @snippet qmodelroledataspan-len +return %CPPSELF.size(); +// @snippet qmodelroledataspan-len + +// @snippet qmodelroledataspan-getitem +const Py_ssize_t size = %CPPSELF.size(); +if (_i < 0 || _i >= size) { + Shiboken::Errors::setIndexOutOfBounds(_i, 0, size); + return nullptr; +} +// Return a pointer to allow for modification using QModelRoleData::setData() +QModelRoleData *item = &((*%CPPSELF)[_i]); +return %CONVERTTOPYTHON[QModelRoleData *](item); +// @snippet qmodelroledataspan-getitem + // @snippet default-enter Py_INCREF(%PYSELF); pyResult = %PYSELF; |
