aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2024-09-09 14:07:57 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-09-11 11:21:16 +0200
commitba83ea75449f7e86525adcc796ccce800e86fb92 (patch)
tree439ceaaf1ba59021029b01e01bdcbbec3b7c0573 /sources/pyside6/tests
parent8b08cebf577964e164c9fe2fa776e18d53cfe8d6 (diff)
PySide6: Add QModelRoleDataSpan
Implement QModelRoleDataSpan with an index operator returning QModelRoleData* for modification. This enables QAbstractItemModel::multiData(). [ChangeLog][PySide6] QModelRoleDataSpan for implementing QAbstractItemModel.multiData() has been added. Fixes: PYSIDE-2859 Change-Id: I35e4812bd999538f6dbd9e63a623791640287bab Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside6/tests')
-rw-r--r--sources/pyside6/tests/QtCore/qabstractitemmodel_test.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/sources/pyside6/tests/QtCore/qabstractitemmodel_test.py b/sources/pyside6/tests/QtCore/qabstractitemmodel_test.py
index 20d070a03..f1b0f8b0b 100644
--- a/sources/pyside6/tests/QtCore/qabstractitemmodel_test.py
+++ b/sources/pyside6/tests/QtCore/qabstractitemmodel_test.py
@@ -20,15 +20,25 @@ class MyModel (QAbstractListModel):
pass
+class MyMultiDataModel(QAbstractListModel):
+
+ def multiData(self, index, roleSpans):
+ if index.isValid():
+ for rd in roleSpans:
+ if rd.role() == Qt.ItemDataRole.DisplayRole:
+ rd.setData(f"test {index.row()} {index.column()}")
+
+
class TestQModelIndexInternalPointer(unittest.TestCase):
def testInternalPointer(self):
m = MyModel()
foo = QObject()
idx = m.createIndex(0, 0, foo)
- check = m.checkIndex(idx, QAbstractItemModel.CheckIndexOption.IndexIsValid
- | QAbstractItemModel.CheckIndexOption.DoNotUseParent
- | QAbstractItemModel.CheckIndexOption.ParentIsInvalid)
+ flags = (QAbstractItemModel.CheckIndexOption.IndexIsValid
+ | QAbstractItemModel.CheckIndexOption.DoNotUseParent
+ | QAbstractItemModel.CheckIndexOption.ParentIsInvalid)
+ check = m.checkIndex(idx, flags)
self.assertTrue(check)
def testPassQPersistentModelIndexAsQModelIndex(self):
@@ -47,7 +57,11 @@ class TestQModelIndexInternalPointer(unittest.TestCase):
proxyData = str(proxyModel.data(proxyIndex, Qt.DisplayRole))
self.assertEqual(sourceData, proxyData)
+ def testMultiDataModel(self):
+ """Test whether QAbstractItemModel.multiData() can be implemented
+ using QModelRoleData/QModelRoleDataSpan (ATM syntax only)."""
+ model = MyMultiDataModel() # noqa: F841
+
if __name__ == '__main__':
unittest.main()
-