Support multiple deployconfiguration factories

Change-Id: Ifc54ec9fdd36804570f9bcf905260539c787d9db
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Daniel Teske
2013-03-04 14:48:24 +01:00
parent b941e76d92
commit 586131529e
4 changed files with 44 additions and 31 deletions

View File

@@ -545,12 +545,16 @@ void Target::updateDefaultBuildConfigurations()
void Target::updateDefaultDeployConfigurations()
{
DeployConfigurationFactory *dcFactory = DeployConfigurationFactory::find(this);
if (!dcFactory) {
QList<DeployConfigurationFactory *> dcFactories = DeployConfigurationFactory::find(this);
if (dcFactories.isEmpty()) {
qWarning("No deployment configuration factory found for target id '%s'.", qPrintable(id().toString()));
return;
}
QList<Core::Id> dcIds = dcFactory->availableCreationIds(this);
QList<Core::Id> dcIds;
foreach (DeployConfigurationFactory *dcFactory, dcFactories)
dcIds.append(dcFactory->availableCreationIds(this));
QList<DeployConfiguration *> dcList = deployConfigurations();
foreach (DeployConfiguration *dc, dcList) {
@@ -561,12 +565,14 @@ void Target::updateDefaultDeployConfigurations()
}
foreach (Core::Id id, dcIds) {
if (!dcFactory->canCreate(this, id))
continue;
DeployConfiguration *dc = dcFactory->create(this, id);
if (dc) {
QTC_CHECK(dc->id() == id);
addDeployConfiguration(dc);
foreach (DeployConfigurationFactory *dcFactory, dcFactories) {
if (dcFactory->canCreate(this, id)) {
DeployConfiguration *dc = dcFactory->create(this, id);
if (dc) {
QTC_CHECK(dc->id() == id);
addDeployConfiguration(dc);
}
}
}
}
}