diff --git a/src/plugins/vcsbase/vcscommand.cpp b/src/plugins/vcsbase/vcscommand.cpp index 69b7c384f3e..66ebb069f52 100644 --- a/src/plugins/vcsbase/vcscommand.cpp +++ b/src/plugins/vcsbase/vcscommand.cpp @@ -106,6 +106,7 @@ public: std::unique_ptr m_process; QString m_stdOut; QString m_stdErr; + ProcessResult m_result = ProcessResult::StartFailed; QFutureInterface m_futureInterface; unsigned m_flags = 0; @@ -255,6 +256,7 @@ void VcsCommandPrivate::processDone() handleDone(m_process.get()); m_stdOut += m_process->cleanedStdOut(); m_stdErr += m_process->cleanedStdErr(); + m_result = m_process->result(); ++m_currentJob; const bool success = m_process->result() == ProcessResult::FinishedWithSuccess; if (m_currentJob < m_jobs.count() && success) { @@ -263,6 +265,7 @@ void VcsCommandPrivate::processDone() return; } emit q->finished(success); + emit q->done(); if (!success) m_futureInterface.reportCanceled(); cleanup(); @@ -377,6 +380,11 @@ QString VcsCommand::cleanedStdErr() const return d->m_stdErr; } +ProcessResult VcsCommand::result() const +{ + return d->m_result; +} + CommandResult VcsCommand::runCommand(const CommandLine &command, int timeoutS) { QtcProcess process; diff --git a/src/plugins/vcsbase/vcscommand.h b/src/plugins/vcsbase/vcscommand.h index 675b707f128..2bb70850156 100644 --- a/src/plugins/vcsbase/vcscommand.h +++ b/src/plugins/vcsbase/vcscommand.h @@ -118,11 +118,13 @@ public: QString cleanedStdOut() const; QString cleanedStdErr() const; + Utils::ProcessResult result() const; signals: void stdOutText(const QString &); void stdErrText(const QString &); void finished(bool success); + void done(); void terminate(); // Internal