diff options
author | Serhii Moroz <frost.asm@gmail.com> | 2016-08-02 12:04:40 +0300 |
---|---|---|
committer | Serhii Moroz <frost.asm@gmail.com> | 2017-03-21 12:31:46 +0000 |
commit | 6ecb1c401851dd1f4e5582ad491a6871710abeb7 (patch) | |
tree | 65955a01fbdae419b33d65c901fb9a93d0df7382 /src/plugins/coreplugin/locator/externaltoolsfilter.cpp | |
parent | 4f66adb9a29593b660db6590c0547780456ac757 (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.cpp | 14 |
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); } } |