diff options
Diffstat (limited to 'tests/auto/corelib/itemmodels/qsortfilterproxymodel')
-rw-r--r-- | tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp index bb77ec54c5..0f72b419a0 100644 --- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp +++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp @@ -92,6 +92,7 @@ private slots: void filterTable(); void filterCurrent(); + void filter_qtbug30662(); void changeSourceLayout(); void removeSourceRows_data(); @@ -1480,6 +1481,33 @@ void tst_QSortFilterProxyModel::filterCurrent() QCOMPARE(spy.count(), 2); } +void tst_QSortFilterProxyModel::filter_qtbug30662() +{ + QStringListModel model; + QSortFilterProxyModel proxy; + proxy.setSourceModel(&model); + + // make sure the filter does not match any entry + proxy.setFilterRegExp(QRegExp("[0-9]+")); + + QStringList slSource; + slSource << "z" << "x" << "a" << "b"; + + proxy.setDynamicSortFilter(true); + proxy.sort(0); + model.setStringList(slSource); + + // without fix for QTBUG-30662 this will make all entries visible - but unsorted + proxy.setFilterRegExp(QRegExp("[a-z]+")); + + QStringList slResult; + for (int i = 0; i < proxy.rowCount(); ++i) + slResult.append(proxy.index(i, 0).data().toString()); + + slSource.sort(); + QCOMPARE(slResult, slSource); +} + void tst_QSortFilterProxyModel::changeSourceLayout() { QStandardItemModel model(2, 1); |