From 187c5a5f4dffc31ffeee961efeebacc094caade4 Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Sun, 25 Nov 2018 15:59:32 +0100 Subject: [PATCH] BaseFileFilter: Sort entries by display name instead path Before, each category was sort by full path name which is displayed in locators second column. Change-Id: Id3f5e931b179008d832479be0cf1f9bc26b1e94d Reviewed-by: Orgad Shaneh Reviewed-by: Eike Ziller --- .../coreplugin/locator/basefilefilter.cpp | 7 +++++++ .../coreplugin/locator/locator_test.cpp | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/plugins/coreplugin/locator/basefilefilter.cpp b/src/plugins/coreplugin/locator/basefilefilter.cpp index 27cec55045a..220f6ff782d 100644 --- a/src/plugins/coreplugin/locator/basefilefilter.cpp +++ b/src/plugins/coreplugin/locator/basefilefilter.cpp @@ -26,6 +26,7 @@ #include "basefilefilter.h" #include +#include #include #include @@ -178,6 +179,12 @@ QList BaseFileFilter::matchesFor(QFutureInterfacem_current.iterator.clear(); QTimer::singleShot(0, this, &BaseFileFilter::updatePreviousResultData); } + + for (auto &entry : entries) { + if (entry.size() < 1000) + Utils::sort(entry, Core::LocatorFilterEntry::compareLexigraphically); + } + return entries[0] + entries[1] + entries[2] + entries[3]; } diff --git a/src/plugins/coreplugin/locator/locator_test.cpp b/src/plugins/coreplugin/locator/locator_test.cpp index 8d6e4453a23..7fe4244357d 100644 --- a/src/plugins/coreplugin/locator/locator_test.cpp +++ b/src/plugins/coreplugin/locator/locator_test.cpp @@ -179,4 +179,22 @@ void Core::Internal::CorePlugin::test_basefilefilter_data() << ResultData("qcore_mac_p.h", priorityTestFilesShort.at(2)) << ResultData("mid_qcore_mac_p.h", priorityTestFilesShort.at(1)))) ); + + const QStringList sortingTestFiles({QDir::fromNativeSeparators(testDir.file("aaa/zfile.cpp")), + QDir::fromNativeSeparators(testDir.file("bbb/yfile.cpp")), + QDir::fromNativeSeparators(testDir.file("ccc/xfile.cpp"))}); + QStringList sortingTestFilesShort; + for (const QString &file : sortingTestFiles) + sortingTestFilesShort << Utils::FileUtils::shortNativePath(Utils::FileName::fromString(file)); + + QTest::newRow("BaseFileFilter-SortByDisplayName") + << sortingTestFiles + << (QList() + << ReferenceData( + "file", + (QList() + << ResultData("xfile.cpp", sortingTestFilesShort.at(2)) + << ResultData("yfile.cpp", sortingTestFilesShort.at(1)) + << ResultData("zfile.cpp", sortingTestFilesShort.at(0)))) + ); }