diff options
| author | Frank Reininghaus <[email protected]> | 2013-12-22 12:50:09 +0100 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2013-12-22 12:50:14 +0100 |
| commit | d5d1ae124a8d6e96656010179a624e1ce31a04b0 (patch) | |
| tree | 165dda72124dab3fe40f28bae6ded8d0414237a5 /src/tests | |
| parent | 8210d5e472a2bff9f1a1f16b0740df25822b5362 (diff) | |
Update filtered items when the "refreshItems" signal is received
This fixes the problem that the new file name is not shown in the view
if an item is renamed while it is filtered.
BUG: 329118
FIXED-IN: 4.12.1
REVIEW: 114459
Diffstat (limited to 'src/tests')
| -rw-r--r-- | src/tests/kfileitemmodeltest.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index ede9a3d6e..9079e584e 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -92,6 +92,7 @@ private slots: void testInconsistentModel(); void testChangeRolesForFilteredItems(); void testChangeSortRoleWhileFiltering(); + void testRefreshFilteredItems(); private: QStringList itemsInModel() const; @@ -1561,6 +1562,35 @@ void KFileItemModelTest::testChangeSortRoleWhileFiltering() QCOMPARE(itemsInModel(), QStringList() << "c.txt" << "a.txt" << "b.txt"); } +void KFileItemModelTest::testRefreshFilteredItems() +{ + QStringList files; + files << "a.txt" << "b.txt" << "c.jpg" << "d.jpg"; + m_testDir->createFiles(files); + + m_model->loadDirectory(m_testDir->url()); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout)); + QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "c.jpg" << "d.jpg"); + + const KFileItem fileItemC = m_model->fileItem(2); + + // Show only the .txt files. + m_model->setNameFilter(".txt"); + QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt"); + + // Rename one of the .jpg files. + KFileItem fileItemE = fileItemC; + KUrl urlE = fileItemE.url(); + urlE.setFileName("e.jpg"); + fileItemE.setUrl(urlE); + + m_model->slotRefreshItems(QList<QPair<KFileItem, KFileItem> >() << qMakePair(fileItemC, fileItemE)); + + // Show all files again, and verify that the model has updated the file name. + m_model->setNameFilter(QString()); + QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.txt" << "d.jpg" << "e.jpg"); +} + QStringList KFileItemModelTest::itemsInModel() const { QStringList items; |
