forked from qt-creator/qt-creator
RunConfiguration: Avoid unneeded calls to availableCreators()
It has been used twice on each Target::updateDefaultRunConfigurations(): Once to help filter out potentially interesting factories, and then to actually retrieve the creators from the interesting factories. The same result can be obtained with less effort and less code. Change-Id: Ic83423bbbc172c842ec5a55fcd6ad83106e268aa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -620,12 +620,9 @@ IRunConfigurationFactory *IRunConfigurationFactory::find(Target *parent, RunConf
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<IRunConfigurationFactory *> IRunConfigurationFactory::find(Target *parent)
|
const QList<IRunConfigurationFactory *> IRunConfigurationFactory::allFactories()
|
||||||
{
|
{
|
||||||
return Utils::filtered(g_runConfigurationFactories,
|
return g_runConfigurationFactories;
|
||||||
[&parent](IRunConfigurationFactory *factory) {
|
|
||||||
return factory->canHandle(parent) && !factory->availableCreators(parent).isEmpty();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FixedRunConfigurationFactory::FixedRunConfigurationFactory(const QString &displayName,
|
FixedRunConfigurationFactory::FixedRunConfigurationFactory(const QString &displayName,
|
||||||
|
|||||||
@@ -320,7 +320,7 @@ public:
|
|||||||
|
|
||||||
static IRunConfigurationFactory *find(Target *parent, const QVariantMap &map);
|
static IRunConfigurationFactory *find(Target *parent, const QVariantMap &map);
|
||||||
static IRunConfigurationFactory *find(Target *parent, RunConfiguration *rc);
|
static IRunConfigurationFactory *find(Target *parent, RunConfiguration *rc);
|
||||||
static QList<IRunConfigurationFactory *> find(Target *parent);
|
static const QList<IRunConfigurationFactory *> allFactories();
|
||||||
|
|
||||||
Core::Id runConfigurationBaseId() const { return m_runConfigBaseId; }
|
Core::Id runConfigurationBaseId() const { return m_runConfigBaseId; }
|
||||||
|
|
||||||
|
|||||||
@@ -536,8 +536,22 @@ void Target::updateDefaultDeployConfigurations()
|
|||||||
|
|
||||||
void Target::updateDefaultRunConfigurations()
|
void Target::updateDefaultRunConfigurations()
|
||||||
{
|
{
|
||||||
const QList<IRunConfigurationFactory *> rcFactories = IRunConfigurationFactory::find(this);
|
// find all RC ids that can get created:
|
||||||
if (rcFactories.isEmpty()) {
|
QList<RunConfigurationCreationInfo> allAvailableFactories;
|
||||||
|
QList<RunConfigurationCreationInfo> autoCreateFactories;
|
||||||
|
|
||||||
|
for (IRunConfigurationFactory *rcFactory : IRunConfigurationFactory::allFactories()) {
|
||||||
|
if (rcFactory->canHandle(this)) {
|
||||||
|
const QList<RunConfigurationCreationInfo> creators = rcFactory->availableCreators(this);
|
||||||
|
for (const RunConfigurationCreationInfo &creator : creators) {
|
||||||
|
allAvailableFactories.append(creator); // Manual and Auto
|
||||||
|
if (creator.creationMode == RunConfigurationCreationInfo::AlwaysCreate)
|
||||||
|
autoCreateFactories.append(creator); // Auto only.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (allAvailableFactories.isEmpty()) {
|
||||||
qWarning("No run configuration factory found for target id '%s'.", qPrintable(id().toString()));
|
qWarning("No run configuration factory found for target id '%s'.", qPrintable(id().toString()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -553,21 +567,6 @@ void Target::updateDefaultRunConfigurations()
|
|||||||
[](const RunConfiguration *rc) { return rc->isConfigured(); });
|
[](const RunConfiguration *rc) { return rc->isConfigured(); });
|
||||||
int configuredCount = existingConfigured.count();
|
int configuredCount = existingConfigured.count();
|
||||||
|
|
||||||
// find all RC ids that can get created:
|
|
||||||
QList<RunConfigurationCreationInfo> allAvailableFactories;
|
|
||||||
QList<RunConfigurationCreationInfo> autoCreateFactories;
|
|
||||||
|
|
||||||
for (IRunConfigurationFactory *rcFactory : rcFactories) {
|
|
||||||
if (rcFactory->canHandle(this)) {
|
|
||||||
const QList<RunConfigurationCreationInfo> creators = rcFactory->availableCreators(this);
|
|
||||||
for (const RunConfigurationCreationInfo &creator : creators) {
|
|
||||||
allAvailableFactories.append(creator); // Manual and Auto
|
|
||||||
if (creator.creationMode == RunConfigurationCreationInfo::AlwaysCreate)
|
|
||||||
autoCreateFactories.append(creator); // Auto only.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Put outdated RCs into toRemove, do not bother with factories
|
// Put outdated RCs into toRemove, do not bother with factories
|
||||||
// that produce already existing RCs
|
// that produce already existing RCs
|
||||||
QList<RunConfiguration *> toRemove;
|
QList<RunConfiguration *> toRemove;
|
||||||
|
|||||||
Reference in New Issue
Block a user