aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/controls/data/tst_combobox.qml
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-07-05 16:57:12 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-07-06 08:37:55 +0000
commit11ac8a8b598fc79e38339519e52d4fe1a56ddaeb (patch)
tree2ce12192f7ca738f1f299d46997278de07d84c1c /tests/auto/controls/data/tst_combobox.qml
parent2f5a6875c3b9a4ee5c647ebddd6defa6ca12d314 (diff)
Fix QQuickComboBox::textAt()
QQmlObjectModel::object() increases the reference count, and must be paired with QQmlObjectModel::release() to decrease the reference count when the object reference is no longer needed. When ComboBox model changed, previously created delegate instances weren't released as appropriate, because their reference counts were non-zero. Change-Id: I55d67b8baf3c00c1236155b1196a958b6db79e28 Task-number: QTBUG-54573 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests/auto/controls/data/tst_combobox.qml')
-rw-r--r--tests/auto/controls/data/tst_combobox.qml29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/controls/data/tst_combobox.qml b/tests/auto/controls/data/tst_combobox.qml
index 38858998..d21e9900 100644
--- a/tests/auto/controls/data/tst_combobox.qml
+++ b/tests/auto/controls/data/tst_combobox.qml
@@ -811,4 +811,33 @@ TestCase {
control.destroy()
}
+
+ ListModel {
+ id: resetmodel
+ ListElement { text: "First" }
+ ListElement { text: "Second" }
+ ListElement { text: "Third" }
+ }
+
+ // QTBUG-54573
+ function test_modelReset() {
+ var control = comboBox.createObject(testCase, {model: resetmodel})
+ verify(control)
+ control.popup.open()
+
+ var listview = control.popup.contentItem
+ verify(listview)
+
+ waitForRendering(listview)
+ compare(listview.contentItem.children.length, resetmodel.count + 1) // + highlight item
+
+ resetmodel.clear()
+ resetmodel.append({text: "Fourth"})
+ resetmodel.append({text: "Fifth"})
+
+ waitForRendering(listview)
+ compare(listview.contentItem.children.length, resetmodel.count + 1) // + highlight item
+
+ control.destroy()
+ }
}