summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp')
-rw-r--r--tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp26
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)