diff options
Diffstat (limited to 'tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp')
-rw-r--r-- | tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp index 09990ab70a..3e0d2539b4 100644 --- a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp +++ b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp @@ -418,6 +418,7 @@ private slots: void taskQTBUG_10169_sizeHintForRow(); void taskQTBUG_30653_doItemsLayout(); void taskQTBUG_50171_selectRowAfterSwapColumns(); + void deselectRow(); #if QT_CONFIG(wheelevent) void mouseWheel_data(); @@ -4492,6 +4493,31 @@ void tst_QTableView::taskQTBUG_50171_selectRowAfterSwapColumns() } } +class DeselectTableWidget : public QTableWidget +{ +public: + using QTableWidget::QTableWidget; + QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex &, + const QEvent * = nullptr) const override + { + return QItemSelectionModel::Toggle; + } +}; + +void tst_QTableView::deselectRow() +{ + DeselectTableWidget tw(20, 20); + tw.show(); + QVERIFY(QTest::qWaitForWindowExposed(&tw)); + tw.hideColumn(0); + QVERIFY(tw.isColumnHidden(0)); + tw.selectRow(1); + QVERIFY(tw.selectionModel()->isRowSelected(1, QModelIndex())); + tw.selectRow(1); + // QTBUG-79092 - deselection was not possible when column 0 was hidden + QVERIFY(!tw.selectionModel()->isRowSelected(1, QModelIndex())); +} + // This has nothing to do with QTableView, but it's convenient to reuse the QtTestTableModel #if QT_CONFIG(textmarkdownwriter) |