diff options
-rw-r--r-- | src/widgets/itemviews/qtablewidget.cpp | 2 | ||||
-rw-r--r-- | tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/widgets/itemviews/qtablewidget.cpp b/src/widgets/itemviews/qtablewidget.cpp index 11925af7a0..2d539e10ba 100644 --- a/src/widgets/itemviews/qtablewidget.cpp +++ b/src/widgets/itemviews/qtablewidget.cpp @@ -225,7 +225,7 @@ QTableWidgetItem *QTableModel::takeItem(int row, int column) itm->view = 0; itm->d->id = -1; tableItems[i] = 0; - QModelIndex ind = index(itm); + const QModelIndex ind = index(row, column); emit dataChanged(ind, ind); } return itm; diff --git a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp index 208ce27c8f..4155ff1ec6 100644 --- a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp +++ b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp @@ -362,11 +362,18 @@ void tst_QTableWidget::takeItem() for (int c = 0; c < testWidget->columnCount(); ++c) QCOMPARE(testWidget->item(r, c)->text(), QString::number(r * c + c)); + QSignalSpy spy(testWidget, &QTableWidget::cellChanged); QTableWidgetItem *item = testWidget->takeItem(row, column); QCOMPARE(!!item, expectItem); if (expectItem) { QCOMPARE(item->text(), QString::number(row * column + column)); delete item; + + QTRY_COMPARE(spy.count(), 1); + const QList<QVariant> arguments = spy.takeFirst(); + QCOMPARE(arguments.size(), 2); + QCOMPARE(arguments.at(0).toInt(), row); + QCOMPARE(arguments.at(1).toInt(), column); } QVERIFY(!testWidget->takeItem(row, column)); } |