diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-09-09 14:07:57 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2024-09-11 11:21:16 +0200 |
| commit | ba83ea75449f7e86525adcc796ccce800e86fb92 (patch) | |
| tree | 439ceaaf1ba59021029b01e01bdcbbec3b7c0573 /sources/pyside6/tests | |
| parent | 8b08cebf577964e164c9fe2fa776e18d53cfe8d6 (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.py | 22 |
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() - |
