diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index 23432b69d68003ae3aeb5ee325069c01094ec5a5..8962422566c2eeb38d3beacd96994e07a6f0dc00 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -177,17 +177,20 @@ bool Project::removeTarget(Target *target) if (bm->isBuilding(target)) return false; - emit aboutToRemoveTarget(target); - - d->m_targets.removeOne(target); - - emit removedTarget(target); if (target == activeTarget()) { - if (d->m_targets.isEmpty()) + if (d->m_targets.size() == 1) { setActiveTarget(0); - else + } else if (d->m_targets.first() == target) { + setActiveTarget(d->m_targets.at(1)); + } else { setActiveTarget(d->m_targets.at(0)); + } } + + emit aboutToRemoveTarget(target); + d->m_targets.removeOne(target); + emit removedTarget(target); + delete target; return true; }