summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/itemviews/qlistwidget
diff options
context:
space:
mode:
authorSamuel Gaist <samuel.gaist@edeltech.ch>2016-02-20 22:50:23 +0100
committerSamuel Gaist <samuel.gaist@edeltech.ch>2016-02-21 20:50:18 +0000
commit6129aade0018437d8d65a0051040d7100c8ec681 (patch)
tree89f56592f5c13b642b39760787ee57266f15fd82 /tests/auto/widgets/itemviews/qlistwidget
parent923be3f78ca1b2fc4be8bd4b2ac80b4f1b4df152 (diff)
QListWidget: setup connections when changing selection model.
QListWidget uses a set of slots for its selection model that are connected only at creation time. This patch adds the missing connections cleanup and setup when a user changes the selection model. Task-number: QTBUG-50891 Change-Id: I942bae6c471ea1ae22637d09b96d6fbd422f653f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'tests/auto/widgets/itemviews/qlistwidget')
-rw-r--r--tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp b/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp
index 84b00147ca..e8bd86bee5 100644
--- a/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp
+++ b/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp
@@ -115,6 +115,7 @@ private slots:
void QTBUG8086_currentItemChangedOnClick();
void QTBUG14363_completerWithAnyKeyPressedEditTriggers();
void mimeData();
+ void QTBUG50891_ensureSelectionModelSignalConnectionsAreSet();
protected slots:
void rowsAboutToBeInserted(const QModelIndex &parent, int first, int last)
@@ -1700,5 +1701,30 @@ void tst_QListWidget::mimeData()
delete data2;
}
+void tst_QListWidget::QTBUG50891_ensureSelectionModelSignalConnectionsAreSet()
+{
+ qRegisterMetaType<QListWidgetItem*>("QListWidgetItem*");
+ QListWidget list;
+ for (int i = 0 ; i < 4; ++i)
+ new QListWidgetItem(QString::number(i), &list);
+
+ list.setSelectionModel(new QItemSelectionModel(list.model()));
+ list.show();
+
+ QSignalSpy currentItemChangedSpy(&list, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)));
+ QSignalSpy itemSelectionChangedSpy(&list, SIGNAL(itemSelectionChanged()));
+
+ QVERIFY(QTest::qWaitForWindowExposed(&list));
+
+ QCOMPARE(currentItemChangedSpy.count(), 0);
+ QCOMPARE(itemSelectionChangedSpy.count(), 0);
+
+ QTest::mouseClick(list.viewport(), Qt::LeftButton, 0, list.visualItemRect(list.item(2)).center());
+
+ QCOMPARE(currentItemChangedSpy.count(), 1);
+ QCOMPARE(itemSelectionChangedSpy.count(), 1);
+
+}
+
QTEST_MAIN(tst_QListWidget)
#include "tst_qlistwidget.moc"