summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp')
-rw-r--r--tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
index ba3cf13271..eaf44d93cd 100644
--- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
@@ -158,6 +158,7 @@ private slots:
void task_QTBUG_1071_changingFocusEmitsActivated();
void maxVisibleItems();
void task_QTBUG_10491_currentIndexAndModelColumn();
+ void highlightedSignal();
protected slots:
void onEditTextChanged( const QString &newString );
@@ -2565,5 +2566,33 @@ void tst_QComboBox::task_QTBUG_10491_currentIndexAndModelColumn()
QCOMPARE(QModelIndex(d->currentIndex), model.index(2, comboBox.modelColumn()));
}
+void tst_QComboBox::highlightedSignal()
+{
+ QComboBox comboBox;
+
+ QSignalSpy spy(&comboBox, SIGNAL(highlighted(int)));
+ QVERIFY(spy.isValid());
+
+ // Calling view() before setting the model causes the creation
+ // of a QComboBoxPrivateContainer containing an actual view, and connecting to
+ // the selectionModel to generate the highlighted signal. When setModel is called
+ // further down, that selectionModel is obsolete. We test that the highlighted
+ // signal is emitted anyway as the bug fix. (QTBUG-4454)
+ comboBox.view();
+ QItemSelectionModel *initialItemSelectionModel = comboBox.view()->selectionModel();
+
+
+ QStandardItemModel model;
+ for (int i = 0; i < 5; i++)
+ model.appendRow(new QStandardItem(QString::number(i)));
+ comboBox.setModel(&model);
+
+ comboBox.view()->selectionModel()->setCurrentIndex(model.index(0, 0), QItemSelectionModel::Current);
+
+ QVERIFY(initialItemSelectionModel != comboBox.view()->selectionModel());
+
+ QCOMPARE(spy.size(), 1);
+}
+
QTEST_MAIN(tst_QComboBox)
#include "tst_qcombobox.moc"