summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorThierry Bastian <thierry.bastian@nokia.com>2009-08-25 10:42:43 (GMT)
committerThierry Bastian <thierry.bastian@nokia.com>2009-08-25 10:44:24 (GMT)
commit8a7700ffb5e4959e788861e4862ebc1a7a3ad3b1 (patch)
tree0bd86802c74a38c10dd51d2dde4d8b880c434c07 /tests/auto
parent2aeeda9b82440dbcb3564c185003288b83f49683 (diff)
downloadQt-8a7700ffb5e4959e788861e4862ebc1a7a3ad3b1.zip
Qt-8a7700ffb5e4959e788861e4862ebc1a7a3ad3b1.tar.gz
Qt-8a7700ffb5e4959e788861e4862ebc1a7a3ad3b1.tar.bz2
ItemViews: selection not well kept when new rows appear
Task-number: 260134 Reviewed-by: ogoffart
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp b/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
index 5806ca9..595c757 100644
--- a/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
+++ b/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
@@ -91,6 +91,7 @@ private slots:
void task119433_isRowSelected();
void task252069_rowIntersectsSelection();
void task232634_childrenDeselectionSignal();
+ void task260134_layoutChangedWithAllSelected();
private:
QAbstractItemModel *model;
@@ -2241,5 +2242,37 @@ void tst_QItemSelectionModel::task232634_childrenDeselectionSignal()
QVERIFY(selectionModel.selection().contains(sel2));
}
+void tst_QItemSelectionModel::task260134_layoutChangedWithAllSelected()
+{
+ QStringListModel model( QStringList() << "foo" << "bar" << "foo2");
+ QSortFilterProxyModel proxy;
+ proxy.setSourceModel(&model);
+ QItemSelectionModel selection(&proxy);
+
+
+ QCOMPARE(model.rowCount(), 3);
+ QCOMPARE(proxy.rowCount(), 3);
+ proxy.setFilterRegExp( QRegExp("f"));
+ QCOMPARE(proxy.rowCount(), 2);
+
+ QList<QPersistentModelIndex> indexList;
+ indexList << proxy.index(0,0) << proxy.index(1,0);
+ selection.select( QItemSelection(indexList.first(), indexList.last()), QItemSelectionModel::Select);
+
+ //let's check the selection hasn't changed
+ QCOMPARE(selection.selectedIndexes().count(), indexList.count());
+ foreach(QPersistentModelIndex index, indexList)
+ QVERIFY(selection.isSelected(index));
+
+ proxy.setFilterRegExp(QRegExp());
+ QCOMPARE(proxy.rowCount(), 3);
+
+ //let's check the selection hasn't changed
+ QCOMPARE(selection.selectedIndexes().count(), indexList.count());
+ foreach(QPersistentModelIndex index, indexList)
+ QVERIFY(selection.isSelected(index));
+}
+
+
QTEST_MAIN(tst_QItemSelectionModel)
#include "tst_qitemselectionmodel.moc"