forked from qt-creator/qt-creator
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 <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
committed by
André Hartmann
parent
952258a8f0
commit
187c5a5f4d
@@ -26,6 +26,7 @@
|
|||||||
#include "basefilefilter.h"
|
#include "basefilefilter.h"
|
||||||
|
|
||||||
#include <coreplugin/editormanager/editormanager.h>
|
#include <coreplugin/editormanager/editormanager.h>
|
||||||
|
#include <utils/algorithm.h>
|
||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
@@ -178,6 +179,12 @@ QList<LocatorFilterEntry> BaseFileFilter::matchesFor(QFutureInterface<LocatorFil
|
|||||||
d->m_current.iterator.clear();
|
d->m_current.iterator.clear();
|
||||||
QTimer::singleShot(0, this, &BaseFileFilter::updatePreviousResultData);
|
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];
|
return entries[0] + entries[1] + entries[2] + entries[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -179,4 +179,22 @@ void Core::Internal::CorePlugin::test_basefilefilter_data()
|
|||||||
<< ResultData("qcore_mac_p.h", priorityTestFilesShort.at(2))
|
<< ResultData("qcore_mac_p.h", priorityTestFilesShort.at(2))
|
||||||
<< ResultData("mid_qcore_mac_p.h", priorityTestFilesShort.at(1))))
|
<< 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>()
|
||||||
|
<< ReferenceData(
|
||||||
|
"file",
|
||||||
|
(QList<ResultData>()
|
||||||
|
<< ResultData("xfile.cpp", sortingTestFilesShort.at(2))
|
||||||
|
<< ResultData("yfile.cpp", sortingTestFilesShort.at(1))
|
||||||
|
<< ResultData("zfile.cpp", sortingTestFilesShort.at(0))))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user