diff options
author | hjk <hjk@qt.io> | 2018-03-08 12:39:03 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2018-03-09 16:16:38 +0000 |
commit | afe13e68129a4bdd661c10aaf294237ed198707e (patch) | |
tree | 82f157d75d665fd576107ccf797e8350b195cd46 /src/plugins/projectexplorer/target.cpp | |
parent | f028a74f322d8c5e7d49b78d65b50e6e3285f13f (diff) |
RunConfigurationFactory: Simplify RunConfigFactory::create use
A for (f : X.allFs()) if (f.canHandle(t)) { f.doIt() ... } }
pattern can be replaced by some static X.doIt(t), and
item.factory->create(target, item) by some item.create(target).
Change-Id: I65df8b71e03272d60f41a16795ea43a0fdb262ef
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/target.cpp')
-rw-r--r-- | src/plugins/projectexplorer/target.cpp | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index fabf653de0..77c02a75e9 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -536,22 +536,11 @@ void Target::updateDefaultDeployConfigurations() void Target::updateDefaultRunConfigurations() { - // find all RC ids that can get created: - QList<RunConfigurationCreationInfo> allAvailableFactories; - QList<RunConfigurationCreationInfo> autoCreateFactories; - - for (RunConfigurationFactory *rcFactory : RunConfigurationFactory::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. - } - } - } + // Manual and Auto + const QList<RunConfigurationCreationInfo> creators + = RunConfigurationFactory::creatorsForTarget(this); - if (allAvailableFactories.isEmpty()) { + if (creators.isEmpty()) { qWarning("No run configuration factory found for target id '%s'.", qPrintable(id().toString())); return; } @@ -573,7 +562,7 @@ void Target::updateDefaultRunConfigurations() QList<RunConfigurationCreationInfo> existing; foreach (RunConfiguration *rc, existingConfigured) { bool present = false; - for (const RunConfigurationCreationInfo &item : allAvailableFactories) { + for (const RunConfigurationCreationInfo &item : creators) { if (item.id == rc->id() && item.extra == rc->extraId()) { existing.append(item); present = true; @@ -584,8 +573,10 @@ void Target::updateDefaultRunConfigurations() } configuredCount -= toRemove.count(); - // Create new RCs and put them into newConfigured/newUnconfigured - foreach (const RunConfigurationCreationInfo &item, autoCreateFactories) { + // Create new "automatic" RCs and put them into newConfigured/newUnconfigured + foreach (const RunConfigurationCreationInfo &item, creators) { + if (item.creationMode == RunConfigurationCreationInfo::ManualCreationOnly) + continue; bool exists = false; for (const RunConfigurationCreationInfo &ex : existing) { if (ex.id == item.id && ex.extra == item.extra) @@ -594,7 +585,7 @@ void Target::updateDefaultRunConfigurations() if (exists) continue; - RunConfiguration *rc = item.factory->create(this, item); + RunConfiguration *rc = item.create(this); if (!rc) continue; QTC_CHECK(rc->id() == item.id); |