aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/locator/externaltoolsfilter.cpp
diff options
context:
space:
mode:
authorSerhii Moroz <frost.asm@gmail.com>2016-08-02 12:04:40 +0300
committerSerhii Moroz <frost.asm@gmail.com>2017-03-21 12:31:46 +0000
commit6ecb1c401851dd1f4e5582ad491a6871710abeb7 (patch)
tree65955a01fbdae419b33d65c901fb9a93d0df7382 /src/plugins/coreplugin/locator/externaltoolsfilter.cpp
parent4f66adb9a29593b660db6590c0547780456ac757 (diff)
Locator: Add highlighting of the search text
Change-Id: Ia166e9667076e46770a754b626ceb28080139e79 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/coreplugin/locator/externaltoolsfilter.cpp')
-rw-r--r--src/plugins/coreplugin/locator/externaltoolsfilter.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/plugins/coreplugin/locator/externaltoolsfilter.cpp b/src/plugins/coreplugin/locator/externaltoolsfilter.cpp
index 69dfe6c6702..7307473168b 100644
--- a/src/plugins/coreplugin/locator/externaltoolsfilter.cpp
+++ b/src/plugins/coreplugin/locator/externaltoolsfilter.cpp
@@ -64,17 +64,23 @@ void ExternalToolsFilter::refresh(QFutureInterface<void> &)
void ExternalToolsFilter::prepareSearch(const QString &entry)
{
m_results.clear();
-
- Qt::CaseSensitivity useCaseSensitivity = caseSensitivity(entry);
+ const Qt::CaseSensitivity entryCaseSensitivity = caseSensitivity(entry);
const QMap<QString, ExternalTool *> externalToolsById = ExternalToolManager::toolsById();
auto end = externalToolsById.cend();
for (auto it = externalToolsById.cbegin(); it != end; ++it) {
ExternalTool *tool = *it;
- if (tool->description().contains(entry, useCaseSensitivity) ||
- tool->displayName().contains(entry, useCaseSensitivity)) {
+ int index = tool->displayName().indexOf(entry, 0, entryCaseSensitivity);
+ LocatorFilterEntry::HighlightInfo::DataType hDataType = LocatorFilterEntry::HighlightInfo::DisplayName;
+ if (index < 0) {
+ index = tool->description().indexOf(entry, 0, entryCaseSensitivity);
+ hDataType = LocatorFilterEntry::HighlightInfo::ExtraInfo;
+ }
+
+ if (index >= 0) {
LocatorFilterEntry filterEntry(this, tool->displayName(), QVariant::fromValue(tool));
filterEntry.extraInfo = tool->description();
+ filterEntry.highlightInfo = LocatorFilterEntry::HighlightInfo(index, entry.length(), hDataType);
m_results.append(filterEntry);
}
}