diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index b6a8b2564c5..db59d90e295 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -700,8 +700,7 @@ void BuildManager::nextStep() disconnect(d->m_currentBuildStep, nullptr, instance(), nullptr); BuildManager::nextBuildQueue(); }; - connect(d->m_currentBuildStep, &BuildStep::finished, instance(), finishedHandler, - Qt::QueuedConnection); + connect(d->m_currentBuildStep, &BuildStep::finished, instance(), finishedHandler); connect(d->m_currentBuildStep, &BuildStep::progress, instance(), &BuildManager::progressChanged); d->m_outputWindow->outputFormatter()->reset(); diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp index b7edd0d21a7..ca64125d3a3 100644 --- a/src/plugins/projectexplorer/buildstep.cpp +++ b/src/plugins/projectexplorer/buildstep.cpp @@ -134,6 +134,11 @@ BuildStep::BuildStep(BuildStepList *bsl, Core::Id id) : QTC_CHECK(bsl->target() && bsl->target() == this->target()); } +BuildStep::~BuildStep() +{ + emit finished(false); +} + void BuildStep::run() { m_cancelFlag = false; diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h index 048b798ba48..03a88c8b1a2 100644 --- a/src/plugins/projectexplorer/buildstep.h +++ b/src/plugins/projectexplorer/buildstep.h @@ -68,6 +68,7 @@ protected: explicit BuildStep(BuildStepList *bsl, Core::Id id); public: + ~BuildStep() override; virtual bool init() = 0; void run(); void cancel();