forked from qt-creator/qt-creator
ExternalToolsFilter: Remove the old matchesFor() implementation
Change-Id: I79e81103b0200ea9da56ecb84980e1814a01f2f1 Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
@@ -83,58 +83,4 @@ LocatorMatcherTasks ExternalToolsFilter::matchers()
|
|||||||
return {{Sync(onSetup), storage}};
|
return {{Sync(onSetup), storage}};
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<LocatorFilterEntry> ExternalToolsFilter::matchesFor(QFutureInterface<LocatorFilterEntry> &,
|
|
||||||
const QString &)
|
|
||||||
{
|
|
||||||
return m_results;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ExternalToolsFilter::prepareSearch(const QString &entry)
|
|
||||||
{
|
|
||||||
QList<LocatorFilterEntry> bestEntries;
|
|
||||||
QList<LocatorFilterEntry> betterEntries;
|
|
||||||
QList<LocatorFilterEntry> goodEntries;
|
|
||||||
const Qt::CaseSensitivity entryCaseSensitivity = caseSensitivity(entry);
|
|
||||||
const QMap<QString, ExternalTool *> externalToolsById = ExternalToolManager::toolsById();
|
|
||||||
for (ExternalTool *tool : externalToolsById) {
|
|
||||||
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;
|
|
||||||
filterEntry.displayName = tool->displayName();
|
|
||||||
filterEntry.acceptor = [tool] {
|
|
||||||
auto runner = new ExternalToolRunner(tool);
|
|
||||||
if (runner->hasError())
|
|
||||||
MessageManager::writeFlashing(runner->errorString());
|
|
||||||
return AcceptResult();
|
|
||||||
};
|
|
||||||
filterEntry.extraInfo = tool->description();
|
|
||||||
filterEntry.highlightInfo = LocatorFilterEntry::HighlightInfo(index, entry.length(), hDataType);
|
|
||||||
|
|
||||||
if (filterEntry.displayName.startsWith(entry, entryCaseSensitivity))
|
|
||||||
bestEntries.append(filterEntry);
|
|
||||||
else if (filterEntry.displayName.contains(entry, entryCaseSensitivity))
|
|
||||||
betterEntries.append(filterEntry);
|
|
||||||
else
|
|
||||||
goodEntries.append(filterEntry);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LocatorFilterEntry configEntry;
|
|
||||||
configEntry.displayName = "Configure External Tool...";
|
|
||||||
configEntry.extraInfo = "Opens External Tool settings";
|
|
||||||
configEntry.acceptor = [] {
|
|
||||||
QMetaObject::invokeMethod(CorePlugin::instance(), [] {
|
|
||||||
ICore::showOptionsDialog(Constants::SETTINGS_ID_TOOLS);
|
|
||||||
}, Qt::QueuedConnection);
|
|
||||||
return AcceptResult();
|
|
||||||
};
|
|
||||||
m_results = {};
|
|
||||||
m_results << bestEntries << betterEntries << goodEntries << configEntry;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // Core::Internal
|
} // Core::Internal
|
||||||
|
|||||||
@@ -5,23 +5,15 @@
|
|||||||
|
|
||||||
#include "ilocatorfilter.h"
|
#include "ilocatorfilter.h"
|
||||||
|
|
||||||
namespace Core {
|
namespace Core::Internal {
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class ExternalToolsFilter : public ILocatorFilter
|
class ExternalToolsFilter : public ILocatorFilter
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
public:
|
public:
|
||||||
ExternalToolsFilter();
|
ExternalToolsFilter();
|
||||||
|
|
||||||
void prepareSearch(const QString &entry) override;
|
|
||||||
QList<LocatorFilterEntry> matchesFor(QFutureInterface<LocatorFilterEntry> &future,
|
|
||||||
const QString &entry) override;
|
|
||||||
private:
|
private:
|
||||||
LocatorMatcherTasks matchers() final;
|
LocatorMatcherTasks matchers() final;
|
||||||
|
|
||||||
QList<LocatorFilterEntry> m_results;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Core::Internal
|
||||||
} // namespace Core
|
|
||||||
|
|||||||
Reference in New Issue
Block a user