diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-03-24 12:03:50 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-03-25 09:19:30 +0100 |
commit | 308aba2154699596e3fd0973501213423462a80b (patch) | |
tree | 1fe6fe905c3681042e2af27e025256b1593c52b7 /sources/pyside2/tests/pysidetest/delegatecreateseditor_test.py | |
parent | 3a2072075af39278529ff9d1201be3bcaadfb349 (diff) |
PySide2: Use int for QVariant conversion when possible
Check using the init limits in the QVariant long long conversion
and create an int if possible. This works more smoothly with
Qt and for example ensures that the correct editor is created in
item views.
Change-Id: I0ca2e5e7b91f309deaa81a25e70a5f894f43f841
Fixes: PYSIDE-1250
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside2/tests/pysidetest/delegatecreateseditor_test.py')
-rw-r--r-- | sources/pyside2/tests/pysidetest/delegatecreateseditor_test.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/sources/pyside2/tests/pysidetest/delegatecreateseditor_test.py b/sources/pyside2/tests/pysidetest/delegatecreateseditor_test.py index 1378ca8ad..111d4ebbf 100644 --- a/sources/pyside2/tests/pysidetest/delegatecreateseditor_test.py +++ b/sources/pyside2/tests/pysidetest/delegatecreateseditor_test.py @@ -39,7 +39,10 @@ init_test_paths(True) from helper.usesqapplication import UsesQApplication from testbinding import TestView from PySide2.QtCore import Qt -from PySide2.QtWidgets import QAbstractItemDelegate, QComboBox +from PySide2.QtGui import QStandardItem, QStandardItemModel +from PySide2.QtWidgets import (QAbstractItemDelegate, QComboBox, + QSpinBox, QStyledItemDelegate, + QStyleOptionViewItem, QWidget) id_text = 'This is me' @@ -83,6 +86,19 @@ class EditorCreatedByDelegateTest(UsesQApplication): self.assertEqual(editor.itemData(0, Qt.DisplayRole), id_text) editor.metaObject() + def testIntDelegate(self): + """PYSIDE-1250: When creating a QVariant, use int instead of long long + for anything that fits into a int. Verify by checking that a spin + box is created as item view editor for int.""" + item = QStandardItem() + item.setData(123123, Qt.EditRole) # <-- QVariant conversion here + model = QStandardItemModel() + model.appendRow(item) + style_option = QStyleOptionViewItem() + delegate = QStyledItemDelegate() + editor = delegate.createEditor(None, style_option, model.index(0, 0)) + self.assertEqual(type(editor), QSpinBox) + if __name__ == '__main__': unittest.main() |