forked from qt-creator/qt-creator
LocatorFilter: Introduce LocatorMatcherTasks
Change-Id: I775c88b8ac7d7bb0719a6b20d1e5171dbd62a94d Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -209,7 +209,7 @@ ClangModelManagerSupport::ClangModelManagerSupport()
|
||||
using WorkspaceMatcherCreator = std::function<Core::LocatorMatcherTask(Client *, int)>;
|
||||
const auto matcherCreator = [](const WorkspaceMatcherCreator &creator) {
|
||||
const QList<Client *> clients = clientsForOpenProjects();
|
||||
QList<LocatorMatcherTask> matchers;
|
||||
LocatorMatcherTasks matchers;
|
||||
for (Client *client : clients)
|
||||
matchers << creator(client, 10000);
|
||||
return matchers;
|
||||
|
@@ -287,7 +287,7 @@ namespace Core {
|
||||
class LocatorMatcherPrivate
|
||||
{
|
||||
public:
|
||||
QList<LocatorMatcherTask> m_tasks;
|
||||
LocatorMatcherTasks m_tasks;
|
||||
LocatorMatcherTask::Storage m_storage;
|
||||
int m_parallelLimit = 0;
|
||||
std::unique_ptr<TaskTree> m_taskTree;
|
||||
@@ -298,7 +298,7 @@ LocatorMatcher::LocatorMatcher()
|
||||
|
||||
LocatorMatcher::~LocatorMatcher() = default;
|
||||
|
||||
void LocatorMatcher::setTasks(const QList<LocatorMatcherTask> &tasks)
|
||||
void LocatorMatcher::setTasks(const LocatorMatcherTasks &tasks)
|
||||
{
|
||||
d->m_tasks = tasks;
|
||||
}
|
||||
@@ -411,7 +411,7 @@ LocatorFilterEntries LocatorMatcher::outputData() const
|
||||
return d->m_storage.output;
|
||||
}
|
||||
|
||||
LocatorFilterEntries LocatorMatcher::runBlocking(const QList<LocatorMatcherTask> &tasks,
|
||||
LocatorFilterEntries LocatorMatcher::runBlocking(const LocatorMatcherTasks &tasks,
|
||||
const QString &input, int parallelLimit)
|
||||
{
|
||||
LocatorMatcher tree;
|
||||
@@ -435,10 +435,10 @@ void LocatorMatcher::addMatcherCreator(MatcherType type, const LocatorMatcherTas
|
||||
s_matcherCreators[type].append(creator);
|
||||
}
|
||||
|
||||
QList<LocatorMatcherTask> LocatorMatcher::matchers(MatcherType type)
|
||||
LocatorMatcherTasks LocatorMatcher::matchers(MatcherType type)
|
||||
{
|
||||
const QList<LocatorMatcherTaskCreator> creators = s_matcherCreators.value(type);
|
||||
QList<LocatorMatcherTask> result;
|
||||
LocatorMatcherTasks result;
|
||||
for (const LocatorMatcherTaskCreator &creator : creators)
|
||||
result << creator();
|
||||
return result;
|
||||
|
@@ -132,7 +132,8 @@ public:
|
||||
Utils::Tasking::TreeStorage<Storage> storage;
|
||||
};
|
||||
|
||||
using LocatorMatcherTaskCreator = std::function<QList<LocatorMatcherTask>()>;
|
||||
using LocatorMatcherTasks = QList<LocatorMatcherTask>;
|
||||
using LocatorMatcherTaskCreator = std::function<LocatorMatcherTasks()>;
|
||||
class LocatorMatcherPrivate;
|
||||
|
||||
enum class MatcherType {
|
||||
@@ -149,7 +150,7 @@ class CORE_EXPORT LocatorMatcher final : public QObject
|
||||
public:
|
||||
LocatorMatcher();
|
||||
~LocatorMatcher();
|
||||
void setTasks(const QList<LocatorMatcherTask> &tasks);
|
||||
void setTasks(const LocatorMatcherTasks &tasks);
|
||||
void setInputData(const QString &inputData);
|
||||
void setParallelLimit(int limit); // by default 0 = parallel
|
||||
void start();
|
||||
@@ -160,11 +161,11 @@ public:
|
||||
LocatorFilterEntries outputData() const;
|
||||
|
||||
// Note: Starts internal event loop.
|
||||
static LocatorFilterEntries runBlocking(const QList<LocatorMatcherTask> &tasks,
|
||||
static LocatorFilterEntries runBlocking(const LocatorMatcherTasks &tasks,
|
||||
const QString &input, int parallelLimit = 0);
|
||||
|
||||
static void addMatcherCreator(MatcherType type, const LocatorMatcherTaskCreator &creator);
|
||||
static QList<LocatorMatcherTask> matchers(MatcherType type);
|
||||
static LocatorMatcherTasks matchers(MatcherType type);
|
||||
|
||||
signals:
|
||||
void serialOutputDataReady(const LocatorFilterEntries &serialOutputData);
|
||||
|
Reference in New Issue
Block a user