From c7d6b98fa2aaecbd7f31b9c5976a753508532742 Mon Sep 17 00:00:00 2001 From: Thomas Moerschell Date: Fri, 31 Jan 2025 19:52:09 +0100 Subject: Ignore diacritical marks for keyboard search When using keyboard search, normalize the item names and remove marks first. Now, items containing characters with marks can be found using keyboard search. BUG: 482394 --- src/tests/kfileitemmodeltest.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/tests') diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index 4b1814391..4c6db590d 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -1357,7 +1357,7 @@ void KFileItemModelTest::testIndexForKeyboardSearch() { QSignalSpy itemsInsertedSpy(m_model, &KFileItemModel::itemsInserted); - m_testDir->createFiles({"a", "aa", "Image.jpg", "Image.png", "Text", "Text1", "Text2", "Text11"}); + m_testDir->createFiles({"a", "aa", "Image.jpg", "Image.png", "Text", "Text1", "Text2", "Text11", "U", "Ü", "Üu", "Ž"}); m_model->loadDirectory(m_testDir->url()); QVERIFY(itemsInsertedSpy.wait()); @@ -1374,6 +1374,9 @@ void KFileItemModelTest::testIndexForKeyboardSearch() QCOMPARE(m_model->indexForKeyboardSearch("text1", 0), 5); QCOMPARE(m_model->indexForKeyboardSearch("text2", 0), 6); QCOMPARE(m_model->indexForKeyboardSearch("text11", 0), 7); + QCOMPARE(m_model->indexForKeyboardSearch("u", 0), 8); + QCOMPARE(m_model->indexForKeyboardSearch("üu", 0), 10); + QCOMPARE(m_model->indexForKeyboardSearch("ž", 0), 11); // Start a search somewhere in the middle QCOMPARE(m_model->indexForKeyboardSearch("a", 1), 1); @@ -1400,6 +1403,12 @@ void KFileItemModelTest::testIndexForKeyboardSearch() QCOMPARE(m_model->indexForKeyboardSearch("TexT", 5), 5); QCOMPARE(m_model->indexForKeyboardSearch("IMAGE", 4), 2); + // Test searches that match items with marks + QCOMPARE(m_model->indexForKeyboardSearch("u", 9), 9); + QCOMPARE(m_model->indexForKeyboardSearch("u", 10), 10); + QCOMPARE(m_model->indexForKeyboardSearch("uu", 0), 10); + QCOMPARE(m_model->indexForKeyboardSearch("z", 0), 11); + // TODO: Maybe we should also test keyboard searches in directories which are not sorted by Name? } -- cgit v1.3