From 3726bfc77972a564c84c991ea516097d7bb3b79d Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 12 Apr 2023 00:11:40 +0200 Subject: [PATCH] MacroLocatorFilter: Use Acceptor for LocatorFilterEntry Change-Id: Ie7aa7d81e1b81190b2966de09dc04b3ffb2691ea Reviewed-by: Eike Ziller Reviewed-by: --- src/plugins/macros/macrolocatorfilter.cpp | 41 ++++++++++------------- src/plugins/macros/macrolocatorfilter.h | 5 --- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/src/plugins/macros/macrolocatorfilter.cpp b/src/plugins/macros/macrolocatorfilter.cpp index 5749b187eee..8c90cccd156 100644 --- a/src/plugins/macros/macrolocatorfilter.cpp +++ b/src/plugins/macros/macrolocatorfilter.cpp @@ -8,11 +8,10 @@ #include "macrostr.h" #include -#include -#include #include +using namespace Core; using namespace Macros; using namespace Macros::Internal; @@ -28,11 +27,11 @@ MacroLocatorFilter::MacroLocatorFilter() MacroLocatorFilter::~MacroLocatorFilter() = default; -QList MacroLocatorFilter::matchesFor(QFutureInterface &future, const QString &entry) +QList MacroLocatorFilter::matchesFor(QFutureInterface &future, const QString &entry) { Q_UNUSED(future) - QList goodEntries; - QList betterEntries; + QList goodEntries; + QList betterEntries; const Qt::CaseSensitivity entryCaseSensitivity = caseSensitivity(entry); @@ -43,17 +42,27 @@ QList MacroLocatorFilter::matchesFor(QFutureInterface< const QString description = it.value()->description(); int index = displayName.indexOf(entry, 0, entryCaseSensitivity); - Core::LocatorFilterEntry::HighlightInfo::DataType hDataType = Core::LocatorFilterEntry::HighlightInfo::DisplayName; + LocatorFilterEntry::HighlightInfo::DataType hDataType + = LocatorFilterEntry::HighlightInfo::DisplayName; if (index < 0) { index = description.indexOf(entry, 0, entryCaseSensitivity); - hDataType = Core::LocatorFilterEntry::HighlightInfo::ExtraInfo; + hDataType = LocatorFilterEntry::HighlightInfo::ExtraInfo; } if (index >= 0) { - Core::LocatorFilterEntry filterEntry(this, displayName); + LocatorFilterEntry filterEntry; + filterEntry.displayName = displayName; + filterEntry.acceptor = [displayName] { + IEditor *editor = EditorManager::currentEditor(); + if (editor) + editor->widget()->setFocus(Qt::OtherFocusReason); + + MacroManager::instance()->executeMacro(displayName); + return AcceptResult(); + }; filterEntry.displayIcon = m_icon; filterEntry.extraInfo = description; - filterEntry.highlightInfo = Core::LocatorFilterEntry::HighlightInfo(index, entry.length(), hDataType); + filterEntry.highlightInfo = LocatorFilterEntry::HighlightInfo(index, entry.length(), hDataType); if (index == 0) betterEntries.append(filterEntry); @@ -64,17 +73,3 @@ QList MacroLocatorFilter::matchesFor(QFutureInterface< betterEntries.append(goodEntries); return betterEntries; } - -void MacroLocatorFilter::accept(const Core::LocatorFilterEntry &selection, - QString *newText, int *selectionStart, int *selectionLength) const -{ - Q_UNUSED(newText) - Q_UNUSED(selectionStart) - Q_UNUSED(selectionLength) - // Give the focus back to the editor - Core::IEditor *editor = Core::EditorManager::currentEditor(); - if (editor) - editor->widget()->setFocus(Qt::OtherFocusReason); - - MacroManager::instance()->executeMacro(selection.displayName); -} diff --git a/src/plugins/macros/macrolocatorfilter.h b/src/plugins/macros/macrolocatorfilter.h index 61fa7a34db4..3807548f69e 100644 --- a/src/plugins/macros/macrolocatorfilter.h +++ b/src/plugins/macros/macrolocatorfilter.h @@ -5,8 +5,6 @@ #include -#include - namespace Macros { namespace Internal { @@ -20,9 +18,6 @@ public: QList matchesFor(QFutureInterface &future, const QString &entry) override; - void accept(const Core::LocatorFilterEntry &selection, - QString *newText, int *selectionStart, int *selectionLength) const override; - private: const QIcon m_icon; };