diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index a60419b5410..b8a31b2a28a 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -704,6 +704,7 @@ public: void handleDone(const ProcessResultData &data); void clearForRun(); + void emitStarting(); void emitStarted(); void emitDone(); void emitReadyReadStandardOutput(); @@ -1149,6 +1150,7 @@ void QtcProcess::start() // Pass a dynamic property with info about blocking type d->m_process->setProperty(QTC_PROCESS_BLOCKING_TYPE, property(QTC_PROCESS_BLOCKING_TYPE)); } + d->emitStarting(); d->m_process->start(); } @@ -2031,6 +2033,12 @@ void QtcProcessPrivate::handleDone(const ProcessResultData &data) m_applicationMainThreadId = 0; } +void QtcProcessPrivate::emitStarting() +{ + GuardLocker locker(m_guard); + emit q->starting(); +} + void QtcProcessPrivate::emitStarted() { GuardLocker locker(m_guard); diff --git a/src/libs/utils/qtcprocess.h b/src/libs/utils/qtcprocess.h index 37dcadd2b76..2a131881289 100644 --- a/src/libs/utils/qtcprocess.h +++ b/src/libs/utils/qtcprocess.h @@ -177,8 +177,9 @@ public: QString toStandaloneCommandLine() const; signals: - void started(); - void done(); + void starting(); // On NotRunning -> Starting state transition + void started(); // On Starting -> Running state transition + void done(); // On Starting | Running -> NotRunning state transition void readyReadStandardOutput(); void readyReadStandardError();