diff --git a/src/libs/utils/process.cpp b/src/libs/utils/process.cpp index da3d3ac3522..dffc7f4410b 100644 --- a/src/libs/utils/process.cpp +++ b/src/libs/utils/process.cpp @@ -1647,8 +1647,8 @@ QString Process::readAllStandardError() return QString::fromUtf8(readAllRawStandardError()); } -QString Process::exitMessage(const CommandLine &command, ProcessResult result, int exitCode, - int timeoutInSeconds) +QString Process::exitMessage(const CommandLine &command, ProcessResult result, + int exitCode, milliseconds duration) { const QString cmd = command.toUserOutput(); switch (result) { @@ -1661,16 +1661,17 @@ QString Process::exitMessage(const CommandLine &command, ProcessResult result, i case ProcessResult::StartFailed: return Tr::tr("The command \"%1\" could not be started.").arg(cmd); case ProcessResult::Canceled: - return Tr::tr("The command \"%1\" was canceled after (%2 s).") - .arg(cmd).arg(timeoutInSeconds); + // TODO: We might want to format it nicely when bigger than 1 second, e.g. 1,324 s. + // Also when it's bigger than 1 minute, 1 hour, etc... + return Tr::tr("The command \"%1\" was canceled after (%2 ms).") + .arg(cmd).arg(duration.count()); } return {}; } QString Process::exitMessage() const { - return exitMessage(commandLine(), result(), exitCode(), - duration_cast(processDuration()).count()); + return exitMessage(commandLine(), result(), exitCode(), processDuration()); } milliseconds Process::processDuration() const diff --git a/src/libs/utils/process.h b/src/libs/utils/process.h index b736e43ca2d..fb603c30954 100644 --- a/src/libs/utils/process.h +++ b/src/libs/utils/process.h @@ -180,7 +180,7 @@ public: const QStringList stdErrLines() const; // split, CR removed static QString exitMessage(const CommandLine &command, ProcessResult result, int exitCode, - int timeoutInSeconds); + std::chrono::milliseconds duration); QString exitMessage() const; std::chrono::milliseconds processDuration() const; diff --git a/src/plugins/vcsbase/vcscommand.cpp b/src/plugins/vcsbase/vcscommand.cpp index 5b79a771a59..f4f7cbc064c 100644 --- a/src/plugins/vcsbase/vcscommand.cpp +++ b/src/plugins/vcsbase/vcscommand.cpp @@ -154,22 +154,20 @@ EventLoopMode VcsCommandPrivate::eventLoopMode() const ProcessResult VcsCommandPrivate::handleDone(Process *process, const Job &job) const { ProcessResult result; - QString exitMessage; if (job.exitCodeInterpreter && process->error() != QProcess::FailedToStart && process->exitStatus() == QProcess::NormalExit) { result = job.exitCodeInterpreter(process->exitCode()); - exitMessage = Process::exitMessage(process->commandLine(), m_result, - process->exitCode(), job.timeoutS); } else { result = process->result(); - exitMessage = process->exitMessage(); } + const QString message = Process::exitMessage(process->commandLine(), result, + process->exitCode(), process->processDuration()); // Success/Fail message in appropriate window? if (result == ProcessResult::FinishedWithSuccess) { if (m_flags & RunFlags::ShowSuccessMessage) - VcsOutputWindow::appendMessage(exitMessage); + VcsOutputWindow::appendMessage(message); } else if (!(m_flags & RunFlags::SuppressFailMessage)) { - VcsOutputWindow::appendError(exitMessage); + VcsOutputWindow::appendError(message); } if (m_flags & RunFlags::ExpectRepoChanges) { // TODO tell the document manager that the directory now received all expected changes