From 8879f5e7527caee52966f352af7fa9585fe58192 Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Sun, 18 Sep 2011 16:46:40 +0200 Subject: Implement 'Sort By Size' It only works for files so far. The sorting of folders by the number of items is more tricky to get right because this number is retrieved asynchronously by KFileItemModelRolesUpdater. --- src/tests/kfileitemmodeltest.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/tests') diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index 820cf7848..ea8c19c05 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -386,6 +386,23 @@ void KFileItemModelTest::testSorting() QVERIFY(!m_model->sortFoldersFirst()); QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c" << "d" << "e"); + // Sort by Size, ascending, 'Sort Folders First' enabled + m_model->setSortRole("size"); + m_model->setSortFoldersFirst(true); + QCOMPARE(m_model->sortRole(), QByteArray("size")); + QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder); + QVERIFY(m_model->sortFoldersFirst()); + QCOMPARE(itemsInModel(), QStringList() << "c" << "a" << "b" << "e" << "d"); + + // Sort by Size, descending, 'Sort Folders First' enabled + m_model->setSortOrder(Qt::DescendingOrder); + QCOMPARE(m_model->sortRole(), QByteArray("size")); + QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder); + QVERIFY(m_model->sortFoldersFirst()); + QCOMPARE(itemsInModel(), QStringList() << "c" << "d" << "e" << "b" << "a"); + + // TODO: How shall the sorting by size be done if 'Sort Folders First' is disabled? + // TODO: Sort by other roles; show/hide hidden files } -- cgit v1.3