diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index e2e18fc08c622c59078bdffda719ccae9f6d7ce4..f0c9c85599efe67102d0be65ac6b27850f38ef80 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1161,10 +1161,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er dd->m_projectExplorerSettings.environmentId = QUuid::createUuid(); int tmp = s->value(QLatin1String("ProjectExplorer/Settings/StopBeforeBuild"), Utils::HostOsInfo::isWindowsHost() ? 1 : 0).toInt(); - dd->m_projectExplorerSettings.stopBeforeBuild = ProjectExplorerSettings::StopBeforeBuild(tmp); if (tmp < 0 || tmp > ProjectExplorerSettings::StopAll) tmp = Utils::HostOsInfo::isWindowsHost() ? 1 : 0; - dd->m_projectExplorerSettings.stopBeforeBuild = ProjectExplorerSettings::StopBeforeBuild(tmp); connect(dd->m_sessionManagerAction, &QAction::triggered, @@ -2294,14 +2292,13 @@ int ProjectExplorerPluginPrivate::queue(QList<Project *> projects, QList<Id> ste if (!m_instance->saveModifiedFiles()) return -1; - if (m_projectExplorerSettings.stopBeforeBuild != ProjectExplorerSettings::StopNone) { - QList<RunControl *> toStop; - foreach (RunControl *rc, m_outputPane->allRunControls()) { - if (rc->isRunning() - && (m_projectExplorerSettings.stopBeforeBuild == ProjectExplorerSettings::StopAll - || projects.contains(rc->project()))) - toStop << rc; - } + if (m_projectExplorerSettings.stopBeforeBuild != ProjectExplorerSettings::StopNone + && stepIds.contains(Constants::BUILDSTEPS_BUILD)) { + bool stopAll = (m_projectExplorerSettings.stopBeforeBuild == ProjectExplorerSettings::StopAll); + const QList<RunControl *> toStop + = Utils::filtered(m_outputPane->allRunControls(), [&projects, stopAll](RunControl *rc) { + return rc->isRunning() && (stopAll || projects.contains(rc->project())); + }); if (!toStop.isEmpty()) { bool stopThem = true;