diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-04-24 22:45:42 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-05-16 07:57:06 +0000 |
commit | bc1144025631bd609cf3a16281e22962cb165cc7 (patch) | |
tree | 56dbd7f0544864c27413960babc8fe5e65ef31c7 | |
parent | ef0cc8a1d91e0e9b898b23b6ccc0cab00b72713e (diff) | |
download | qt-creator-bc1144025631bd609cf3a16281e22962cb165cc7.tar.gz |
RunConfigurationFilter: Remove the old matchesFor() implementation
Since the base class vanished, rename the filters so that they have
the common prefix now.
Change-Id: I21c8d1f3ea3c3ad22063d7db8be72e66d449e701
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.cpp | 94 |
1 files changed, 19 insertions, 75 deletions
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index b382d6fec0..df77b48f8b 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -408,40 +408,19 @@ protected: void restoreState(const QJsonObject &object) override; }; -// TODO: Remove the base class -class RunConfigurationLocatorFilter : public ILocatorFilter +class RunConfigurationStartFilter final : public ILocatorFilter { public: - RunConfigurationLocatorFilter(); - - void prepareSearch(const QString &entry) override; - QList<LocatorFilterEntry> matchesFor(QFutureInterface<LocatorFilterEntry> &future, - const QString &entry) override; - using RunAcceptor = std::function<void(RunConfiguration *)>; -protected: - void setRunAcceptor(const RunAcceptor &acceptor) { m_acceptor = acceptor; } - -private: - void targetListUpdated(); - QList<LocatorFilterEntry> m_result; - RunAcceptor m_acceptor; -}; - -// TODO: Don't derive, flatten the hierarchy -class RunRunConfigurationLocatorFilter final : public RunConfigurationLocatorFilter -{ -public: - RunRunConfigurationLocatorFilter(); + RunConfigurationStartFilter(); private: Core::LocatorMatcherTasks matchers() final; }; -// TODO: Don't derive, flatten the hierarchy -class SwitchToRunConfigurationLocatorFilter final : public RunConfigurationLocatorFilter +class RunConfigurationSwitchFilter final : public ILocatorFilter { public: - SwitchToRunConfigurationLocatorFilter(); + RunConfigurationSwitchFilter(); private: Core::LocatorMatcherTasks matchers() final; @@ -682,8 +661,8 @@ public: AllProjectsFilter m_allProjectsFilter; CurrentProjectFilter m_currentProjectFilter; AllProjectFilesFilter m_allProjectDirectoriesFilter; - RunRunConfigurationLocatorFilter m_runConfigurationLocatorFilter; - SwitchToRunConfigurationLocatorFilter m_switchRunConfigurationLocatorFilter; + RunConfigurationStartFilter m_runConfigurationStartFilter; + RunConfigurationSwitchFilter m_runConfigurationSwitchFilter; CopyFileStepFactory m_copyFileStepFactory; CopyDirectoryStepFactory m_copyDirectoryFactory; @@ -4390,14 +4369,15 @@ void AllProjectFilesFilter::restoreState(const QJsonObject &object) DirectoryFilter::restoreState(withoutDirectories); } -RunConfigurationLocatorFilter::RunConfigurationLocatorFilter() +static void setupFilter(ILocatorFilter *filter) { - connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, - this, &RunConfigurationLocatorFilter::targetListUpdated); - - targetListUpdated(); + QObject::connect(ProjectManager::instance(), &ProjectManager::startupProjectChanged, + filter, [filter] { filter->setEnabled(ProjectManager::startupProject()); }); + filter->setEnabled(ProjectManager::startupProject()); } +using RunAcceptor = std::function<void(RunConfiguration *)>; + static RunConfiguration *runConfigurationForDisplayName(const QString &displayName) { const Target *target = ProjectManager::startupTarget(); @@ -4409,8 +4389,7 @@ static RunConfiguration *runConfigurationForDisplayName(const QString &displayNa }); } -static LocatorMatcherTasks runConfigurationMatchers( - const RunConfigurationLocatorFilter::RunAcceptor &acceptor) +static LocatorMatcherTasks runConfigurationMatchers(const RunAcceptor &acceptor) { using namespace Tasking; @@ -4442,58 +4421,23 @@ static LocatorMatcherTasks runConfigurationMatchers( return {{Sync(onSetup), storage}}; } -void RunConfigurationLocatorFilter::prepareSearch(const QString &entry) -{ - m_result.clear(); - const Target *target = ProjectManager::startupTarget(); - if (!target) - return; - for (auto rc : target->runConfigurations()) { - if (rc->displayName().contains(entry, Qt::CaseInsensitive)) { - LocatorFilterEntry entry; - entry.displayName = rc->displayName(); - entry.acceptor = [name = entry.displayName, acceptor = m_acceptor] { - RunConfiguration *config = runConfigurationForDisplayName(name); - if (!config) - return AcceptResult(); - acceptor(config); - return AcceptResult(); - }; - m_result.append(entry); - } - } -} - -QList<LocatorFilterEntry> RunConfigurationLocatorFilter::matchesFor( - QFutureInterface<LocatorFilterEntry> &future, const QString &entry) -{ - Q_UNUSED(future) - Q_UNUSED(entry) - return m_result; -} - -void RunConfigurationLocatorFilter::targetListUpdated() -{ - setEnabled(ProjectManager::startupProject()); // at least one project opened -} - static void runAcceptor(RunConfiguration *config) { if (!BuildManager::isBuilding(config->project())) ProjectExplorerPlugin::runRunConfiguration(config, Constants::NORMAL_RUN_MODE, true); } -RunRunConfigurationLocatorFilter::RunRunConfigurationLocatorFilter() +RunConfigurationStartFilter::RunConfigurationStartFilter() { setId("Run run configuration"); setDisplayName(Tr::tr("Run Run Configuration")); setDescription(Tr::tr("Runs a run configuration of the active project.")); setDefaultShortcutString("rr"); setPriority(Medium); - setRunAcceptor(&runAcceptor); + setupFilter(this); } -LocatorMatcherTasks RunRunConfigurationLocatorFilter::matchers() +LocatorMatcherTasks RunConfigurationStartFilter::matchers() { return runConfigurationMatchers(&runAcceptor); } @@ -4510,17 +4454,17 @@ static void switchAcceptor(RunConfiguration *config) }); } -SwitchToRunConfigurationLocatorFilter::SwitchToRunConfigurationLocatorFilter() +RunConfigurationSwitchFilter::RunConfigurationSwitchFilter() { setId("Switch run configuration"); setDisplayName(Tr::tr("Switch Run Configuration")); setDescription(Tr::tr("Switches the active run configuration of the active project.")); setDefaultShortcutString("sr"); setPriority(Medium); - setRunAcceptor(&switchAcceptor); + setupFilter(this); } -LocatorMatcherTasks SwitchToRunConfigurationLocatorFilter::matchers() +LocatorMatcherTasks RunConfigurationSwitchFilter::matchers() { return runConfigurationMatchers(&switchAcceptor); } |