summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-04-24 22:45:42 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2023-05-16 07:57:06 +0000
commitbc1144025631bd609cf3a16281e22962cb165cc7 (patch)
tree56dbd7f0544864c27413960babc8fe5e65ef31c7
parentef0cc8a1d91e0e9b898b23b6ccc0cab00b72713e (diff)
downloadqt-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.cpp94
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);
}