diff --git a/src/plugins/projectexplorer/buildsteplist.cpp b/src/plugins/projectexplorer/buildsteplist.cpp index f961d9f4ef9..40d4c3b9ac7 100644 --- a/src/plugins/projectexplorer/buildsteplist.cpp +++ b/src/plugins/projectexplorer/buildsteplist.cpp @@ -151,6 +151,17 @@ void BuildStepList::insertStep(int position, BuildStep *step) emit stepInserted(position); } +void BuildStepList::insertStep(int position, Core::Id stepId) +{ + for (BuildStepFactory *factory : BuildStepFactory::allBuildStepFactories()) { + if (BuildStep *step = factory->create(this, stepId)) { + insertStep(position, step); + return; + } + } + QTC_ASSERT(false, qDebug() << "No factory for build step" << stepId.toString() << "found."); +} + bool BuildStepList::removeStep(int position) { BuildStep *bs = at(position); diff --git a/src/plugins/projectexplorer/buildsteplist.h b/src/plugins/projectexplorer/buildsteplist.h index 9100051577f..1c3ec4d4740 100644 --- a/src/plugins/projectexplorer/buildsteplist.h +++ b/src/plugins/projectexplorer/buildsteplist.h @@ -73,7 +73,9 @@ public: bool contains(Core::Id id) const; void insertStep(int position, BuildStep *step); + void insertStep(int position, Core::Id id); void appendStep(BuildStep *step) { insertStep(count(), step); } + void appendStep(Core::Id stepId) { insertStep(count(), stepId); } bool removeStep(int position); void moveStepUp(int position); BuildStep *at(int position);