forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -536,22 +536,11 @@ void Target::updateDefaultDeployConfigurations()
|
||||
|
||||
void Target::updateDefaultRunConfigurations()
|
||||
{
|
||||
// find all RC ids that can get created:
|
||||
QList<RunConfigurationCreationInfo> allAvailableFactories;
|
||||
QList<RunConfigurationCreationInfo> autoCreateFactories;
|
||||
// Manual and Auto
|
||||
const QList<RunConfigurationCreationInfo> creators
|
||||
= RunConfigurationFactory::creatorsForTarget(this);
|
||||
|
||||
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.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user