diff options
Diffstat (limited to 'tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp')
-rw-r--r-- | tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp index 6bbb30a6db..35c0c6c606 100644 --- a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp +++ b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp @@ -4257,32 +4257,42 @@ void tst_QTableView::task191545_dragSelectRows() void tst_QTableView::task234926_setHeaderSorting() { QStringListModel model; - QStringList data; - data << "orange" << "apple" << "banana" << "lemon" << "pumpkin"; + QSortFilterProxyModel sfpm; // default QStandardItemModel does not support 'unsorted' state + sfpm.setSourceModel(&model); + const QStringList data({"orange", "apple", "banana", "lemon", "pumpkin"}); QStringList sortedDataA = data; QStringList sortedDataD = data; std::sort(sortedDataA.begin(), sortedDataA.end()); std::sort(sortedDataD.begin(), sortedDataD.end(), std::greater<QString>()); model.setStringList(data); QTableView view; - view.setModel(&model); -// view.show(); + view.setModel(&sfpm); + QTRY_COMPARE(model.stringList(), data); view.setSortingEnabled(true); view.sortByColumn(0, Qt::AscendingOrder); - QTRY_COMPARE(model.stringList() , sortedDataA); + for (int i = 0; i < sortedDataA.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), sortedDataA.at(i)); view.horizontalHeader()->setSortIndicator(0, Qt::DescendingOrder); - QTRY_COMPARE(model.stringList() , sortedDataD); + for (int i = 0; i < sortedDataD.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), sortedDataD.at(i)); QHeaderView *h = new QHeaderView(Qt::Horizontal); h->setModel(&model); view.setHorizontalHeader(h); h->setSortIndicator(0, Qt::AscendingOrder); - QTRY_COMPARE(model.stringList() , sortedDataA); + for (int i = 0; i < sortedDataA.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), sortedDataA.at(i)); h->setSortIndicator(0, Qt::DescendingOrder); - QTRY_COMPARE(model.stringList() , sortedDataD); + for (int i = 0; i < sortedDataD.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), sortedDataD.at(i)); + + view.sortByColumn(-1, Qt::AscendingOrder); + QCOMPARE(view.horizontalHeader()->sortIndicatorSection(), -1); + for (int i = 0; i < data.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), data.at(i)); } void tst_QTableView::taskQTBUG_5062_spansInconsistency() |