diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp index 14624f42ad..f0731eb3a6 100644 --- a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp +++ b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp @@ -236,6 +236,7 @@ private slots: void testClickedSignal(); void testChangeEditorState(); void deselectInSingleSelection(); + void testNoActivateOnDisabledItem(); }; class MyAbstractItemDelegate : public QAbstractItemDelegate @@ -1642,5 +1643,28 @@ void tst_QAbstractItemView::deselectInSingleSelection() QCOMPARE(view.selectionModel()->selectedIndexes().count(), 1); } +void tst_QAbstractItemView::testNoActivateOnDisabledItem() +{ + QTreeView treeView; + QStandardItemModel model(1, 1); + QStandardItem *item = new QStandardItem("item"); + model.setItem(0, 0, item); + item->setFlags(Qt::NoItemFlags); + treeView.setModel(&model); + treeView.show(); + + QApplication::setActiveWindow(&treeView); + QVERIFY(QTest::qWaitForWindowActive(&treeView)); + + QSignalSpy activatedSpy(&treeView, SIGNAL(activated(QModelIndex))); + + // Ensure clicking on a disabled item doesn't emit itemActivated. + QModelIndex itemIndex = treeView.model()->index(0, 0); + QPoint clickPos = treeView.visualRect(itemIndex).center(); + QTest::mouseClick(treeView.viewport(), Qt::LeftButton, 0, clickPos); + + QCOMPARE(activatedSpy.count(), 0); +} + QTEST_MAIN(tst_QAbstractItemView) #include "tst_qabstractitemview.moc" |