diff options
Diffstat (limited to 'tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp')
-rw-r--r-- | tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp index 4d4a95b3f5..3af31267c2 100644 --- a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp +++ b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp @@ -1343,22 +1343,40 @@ void tst_QTableWidget::setItemWithSorting() } } +class QTableWidgetDataChanged : public QTableWidget +{ + Q_OBJECT +public: + using QTableWidget::QTableWidget; + + void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles) override + { + QTableWidget::dataChanged(topLeft, bottomRight, roles); + currentRoles = roles; + } + QVector<int> currentRoles; +}; + void tst_QTableWidget::itemData() { - QTableWidget widget(2, 2); + QTableWidgetDataChanged widget(2, 2); widget.setItem(0, 0, new QTableWidgetItem()); QTableWidgetItem *item = widget.item(0, 0); QVERIFY(item); item->setFlags(item->flags() | Qt::ItemIsEditable); item->setData(Qt::DisplayRole, QString("0")); + QCOMPARE(widget.currentRoles, QVector<int>({Qt::DisplayRole, Qt::EditRole})); item->setData(Qt::CheckStateRole, Qt::PartiallyChecked); - item->setData(Qt::UserRole + 0, QString("1")); - item->setData(Qt::UserRole + 1, QString("2")); - item->setData(Qt::UserRole + 2, QString("3")); - item->setData(Qt::UserRole + 3, QString("4")); + QCOMPARE(widget.currentRoles, {Qt::CheckStateRole}); + for (int i = 0; i < 4; ++i) + { + item->setData(Qt::UserRole + i, QString::number(i + 1)); + QCOMPARE(widget.currentRoles, {Qt::UserRole + i}); + } QMap<int, QVariant> flags = widget.model()->itemData(widget.model()->index(0, 0)); QCOMPARE(flags.count(), 6); - QCOMPARE(flags[(Qt::UserRole + 0)].toString(), QString("1")); + for (int i = 0; i < 4; ++i) + QCOMPARE(flags[Qt::UserRole + i].toString(), QString::number(i + 1)); } void tst_QTableWidget::setItemData() |