forked from qt-creator/qt-creator
LocatorMatcher: Introduce MatcherType enum
Use it for registering/getting different kinds of matchers. Change-Id: I6f944e0332bf8c512892a00b8ba88f9939f34682 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -427,51 +427,23 @@ LocatorMatcherTask::OutputData LocatorMatcher::runBlocking(const QList<LocatorMa
|
||||
return tree.outputData();
|
||||
}
|
||||
|
||||
static QList<LocatorMatcherTaskCreator> s_locatorMatcherCreators = {};
|
||||
static QList<LocatorMatcherTaskCreator> s_classMatcherCreators = {};
|
||||
static QList<LocatorMatcherTaskCreator> s_functionMatcherCreators = {};
|
||||
static QHash<MatcherType, QList<LocatorMatcherTaskCreator>> s_matcherCreators = {};
|
||||
|
||||
void LocatorMatcher::addLocatorMatcherCreator(const LocatorMatcherTaskCreator &creator)
|
||||
void LocatorMatcher::addMatcherCreator(MatcherType type, const LocatorMatcherTaskCreator &creator)
|
||||
{
|
||||
QTC_ASSERT(creator, return);
|
||||
s_locatorMatcherCreators.append(creator);
|
||||
s_matcherCreators[type].append(creator);
|
||||
}
|
||||
|
||||
void LocatorMatcher::addClassMatcherCreator(const LocatorMatcherTaskCreator &creator)
|
||||
{
|
||||
QTC_ASSERT(creator, return);
|
||||
s_classMatcherCreators.append(creator);
|
||||
}
|
||||
|
||||
void LocatorMatcher::addFunctionMatcherCreator(const LocatorMatcherTaskCreator &creator)
|
||||
{
|
||||
QTC_ASSERT(creator, return);
|
||||
s_functionMatcherCreators.append(creator);
|
||||
}
|
||||
|
||||
static QList<LocatorMatcherTask> matchers(const QList<LocatorMatcherTaskCreator> &creators)
|
||||
QList<LocatorMatcherTask> LocatorMatcher::matchers(MatcherType type)
|
||||
{
|
||||
const QList<LocatorMatcherTaskCreator> creators = s_matcherCreators.value(type);
|
||||
QList<LocatorMatcherTask> result;
|
||||
for (const LocatorMatcherTaskCreator &creator : creators)
|
||||
result << creator();
|
||||
return result;
|
||||
}
|
||||
|
||||
QList<LocatorMatcherTask> LocatorMatcher::locatorMatchers()
|
||||
{
|
||||
return matchers(s_locatorMatcherCreators);
|
||||
}
|
||||
|
||||
QList<LocatorMatcherTask> LocatorMatcher::classMatchers()
|
||||
{
|
||||
return matchers(s_classMatcherCreators);
|
||||
}
|
||||
|
||||
QList<LocatorMatcherTask> LocatorMatcher::functionMatchers()
|
||||
{
|
||||
return matchers(s_functionMatcherCreators);
|
||||
}
|
||||
|
||||
static QList<ILocatorFilter *> g_locatorFilters;
|
||||
|
||||
/*!
|
||||
|
||||
@@ -145,6 +145,12 @@ public:
|
||||
using LocatorMatcherTaskCreator = std::function<QList<LocatorMatcherTask>()>;
|
||||
class LocatorMatcherPrivate;
|
||||
|
||||
enum class MatcherType {
|
||||
AllSymbols,
|
||||
Classes,
|
||||
Functions
|
||||
};
|
||||
|
||||
class CORE_EXPORT LocatorMatcher final : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -167,13 +173,8 @@ public:
|
||||
const LocatorMatcherTask::InputData &input,
|
||||
int parallelLimit = 0);
|
||||
|
||||
static void addLocatorMatcherCreator(const LocatorMatcherTaskCreator &creator);
|
||||
static void addClassMatcherCreator(const LocatorMatcherTaskCreator &creator);
|
||||
static void addFunctionMatcherCreator(const LocatorMatcherTaskCreator &creator);
|
||||
|
||||
static QList<LocatorMatcherTask> locatorMatchers();
|
||||
static QList<LocatorMatcherTask> classMatchers();
|
||||
static QList<LocatorMatcherTask> functionMatchers();
|
||||
static void addMatcherCreator(MatcherType type, const LocatorMatcherTaskCreator &creator);
|
||||
static QList<LocatorMatcherTask> matchers(MatcherType type);
|
||||
|
||||
signals:
|
||||
void serialOutputDataReady(const LocatorMatcherTask::OutputData &serialOutputData);
|
||||
|
||||
Reference in New Issue
Block a user