diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index a36c01235ed9795f4e7bae2914f64d22a8870fb8..0d990a02e3478f09aa18cdc44f822600df9e85b5 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -273,7 +273,7 @@ void Project::restoreSettingsImpl(PersistentSettingsReader &reader) m_values = reader.restoreValue("project").toMap(); - //Build Settings + // restoring BuldConfigurations from settings const QStringList buildConfigurationNames = reader.restoreValue("buildconfigurations").toStringList(); foreach (const QString &buildConfigurationName, buildConfigurationNames) { addBuildConfiguration(buildConfigurationName); @@ -282,77 +282,64 @@ void Project::restoreSettingsImpl(PersistentSettingsReader &reader) getBuildConfiguration(buildConfigurationName)->setValuesFromMap(temp); } + const QList<IBuildStepFactory *> buildStepFactories = + ExtensionSystem::PluginManager::instance()->getObjects<IBuildStepFactory>(); + //Build Settings QVariant buildStepsVariant = reader.restoreValue("buildsteps"); if (buildStepsVariant.isValid()) { // restoring BuildSteps from settings int pos = 0; - const QList<IBuildStepFactory *> buildStepFactories = - ExtensionSystem::PluginManager::instance()->getObjects<IBuildStepFactory>(); QStringList buildStepNames = buildStepsVariant.toStringList(); - foreach (const QString &buildStepName, buildStepNames) { + for (int buildstepnr = 0; buildstepnr < buildStepNames.size(); ++buildstepnr) { + const QString &buildStepName = buildStepNames.at(buildstepnr); + BuildStep *buildStep = 0; foreach (IBuildStepFactory *factory, buildStepFactories) { if (factory->canCreate(buildStepName)) { - BuildStep *buildStep = factory->create(this, buildStepName); + buildStep = factory->create(this, buildStepName); insertBuildStep(pos, buildStep); ++pos; break; } } + // Restoring settings + if (buildStep) { + QMap<QString, QVariant> buildConfiguration = reader.restoreValue("buildstep" + QString().setNum(buildstepnr)).toMap(); + buildStep->setValuesFromMap(buildConfiguration); + foreach (const QString &buildConfigurationName, buildConfigurationNames) { + //get the buildconfiguration for this build step + QMap<QString, QVariant> buildConfiguration = + reader.restoreValue("buildconfiguration-" + buildConfigurationName + "-buildstep" + QString().setNum(buildstepnr)).toMap(); + buildStep->setValuesFromMap(buildConfigurationName, buildConfiguration); + } + } } + } - QStringList cleanStepNames = reader.restoreValue("cleansteps").toStringList(); + QVariant cleanStepsVariant = reader.restoreValue("cleansteps"); + if (cleanStepsVariant.isValid()) { + QStringList cleanStepNames = cleanStepsVariant.toStringList(); // restoring BuildSteps from settings - pos = 0; - foreach (const QString &cleanStepName, cleanStepNames) { + int pos = 0; + for (int cleanstepnr = 0; cleanstepnr < cleanStepNames.size(); ++cleanstepnr) { + const QString &cleanStepName = cleanStepNames.at(cleanstepnr); + BuildStep *cleanStep = 0; foreach (IBuildStepFactory *factory, buildStepFactories) { if (factory->canCreate(cleanStepName)) { - BuildStep *cleanStep = factory->create(this, cleanStepName); + cleanStep = factory->create(this, cleanStepName); insertCleanStep(pos, cleanStep); ++pos; break; } } - } - - // restoring BuldConfigurations from settings - - - - // restore BuildSteps configuration - int buildstepnr = 0; - foreach (BuildStep *buildStep, buildSteps()) { - QMap<QString, QVariant> buildConfiguration = reader.restoreValue("buildstep" + QString().setNum(buildstepnr)).toMap(); - buildStep->setValuesFromMap(buildConfiguration); - ++buildstepnr; - } - - foreach (const QString &buildConfigurationName, buildConfigurationNames) { - buildstepnr = 0; - foreach (BuildStep *buildStep, buildSteps()) { - //get the buildconfiguration for this build step - QMap<QString, QVariant> buildConfiguration = - reader.restoreValue("buildconfiguration-" + buildConfigurationName + "-buildstep" + QString().setNum(buildstepnr)).toMap(); - buildStep->setValuesFromMap(buildConfigurationName, buildConfiguration); - ++buildstepnr; - } - } - - // restore CleanSteps configuration - int cleanstepnr = 0; - foreach (BuildStep *cleanStep, cleanSteps()) { - QMap<QString, QVariant> buildConfiguration = reader.restoreValue("cleanstep" + QString().setNum(cleanstepnr)).toMap(); - cleanStep->setValuesFromMap(buildConfiguration); - ++cleanstepnr; - } - - foreach (const QString &buildConfigurationName, buildConfigurationNames) { - cleanstepnr = 0; - foreach (BuildStep *cleanStep, cleanSteps()) { - //get the buildconfiguration for this clean step - QMap<QString, QVariant> buildConfiguration = - reader.restoreValue("buildconfiguration-" + buildConfigurationName + "-cleanstep" + QString().setNum(cleanstepnr)).toMap(); - cleanStep->setValuesFromMap(buildConfigurationName, buildConfiguration); - ++cleanstepnr; + // Restoring settings + if (cleanStep) { + QMap<QString, QVariant> buildConfiguration = reader.restoreValue("cleanstep" + QString().setNum(cleanstepnr)).toMap(); + cleanStep->setValuesFromMap(buildConfiguration); + foreach (const QString &buildConfigurationName, buildConfigurationNames) { + QMap<QString, QVariant> buildConfiguration = + reader.restoreValue("buildconfiguration-" + buildConfigurationName + "-cleanstep" + QString().setNum(cleanstepnr)).toMap(); + cleanStep->setValuesFromMap(buildConfigurationName, buildConfiguration); + } } } }