diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2019-06-25 20:47:13 +0200 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2019-11-22 22:02:15 +0100 |
commit | 96c27eb710a37780e79e09df2ebce1d5e4922c9d (patch) | |
tree | 2b5a92fd4a65c8e79ef1660f425b7d2e5f3b4165 /tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp | |
parent | 2c871dfd38d89d6415c2c25d47b4a0e9c8b2ef11 (diff) |
QList/Table/TreeWidgetItem: Allow reseting values by passing the default value
The convenience functions setBackground(), setForeground() and
setSizeHint() a default constructed value as 'reset'. This means a
default constructed QBrush or QSize is returned in the data() function
which leads to an unexpected background or forground color or size hint.
Therefore check if the passed value is a default constructed value and
set an empty QVariant instead which.
[ChangeLog][QtWidgets][ItemViews] The convenience views
QList/Table/TreeWidgetItem now treat a default constructed QBrush or
QSize as an empty QVariant which allows to reset the values set to it's
default values.
Task-number: QTBUG-76423
Change-Id: I840570bbad3e5fd8c5b4b58903b4fd0066dbdeb7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp')
-rw-r--r-- | tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp index 2118bb5a29..7da56ab797 100644 --- a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp +++ b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp @@ -1994,6 +1994,20 @@ void tst_QTreeWidget::itemData() QCOMPARE(flags[Qt::UserRole + i].toString(), QString::number(i + 1)); flags = widget.model()->itemData(widget.model()->index(0, 1)); QCOMPARE(flags.count(), 0); + + item.setBackground(0, QBrush(Qt::red)); + item.setForeground(0, QBrush(Qt::green)); + item.setSizeHint(0, QSize(10, 10)); + QCOMPARE(item.data(0, Qt::BackgroundRole), QVariant(QBrush(Qt::red))); + QCOMPARE(item.data(0, Qt::ForegroundRole), QVariant(QBrush(Qt::green))); + QCOMPARE(item.data(0, Qt::SizeHintRole), QVariant(QSize(10, 10))); + // an empty brush should result in a QVariant() + item.setBackground(0, QBrush()); + item.setForeground(0, QBrush()); + item.setSizeHint(0, QSize()); + QCOMPARE(item.data(0, Qt::BackgroundRole), QVariant()); + QCOMPARE(item.data(0, Qt::ForegroundRole), QVariant()); + QCOMPARE(item.data(0, Qt::SizeHintRole), QVariant()); } void tst_QTreeWidget::enableDisable() |