aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/target.cpp
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2018-03-08 12:39:03 +0100
committerhjk <hjk@qt.io>2018-03-09 16:16:38 +0000
commitafe13e68129a4bdd661c10aaf294237ed198707e (patch)
tree82f157d75d665fd576107ccf797e8350b195cd46 /src/plugins/projectexplorer/target.cpp
parentf028a74f322d8c5e7d49b78d65b50e6e3285f13f (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.cpp29
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);