diff --git a/src/plugins/cmakeprojectmanager/cmakeprocess.cpp b/src/plugins/cmakeprojectmanager/cmakeprocess.cpp index 0effbb97db7..8fce28e1ea6 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprocess.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprocess.cpp @@ -38,6 +38,7 @@ #include #include +#include #include namespace CMakeProjectManager { @@ -149,6 +150,7 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList & process->setCommand(commandLine); emit started(); + m_elapsed.start(); process->start(); m_process = std::move(process); @@ -234,6 +236,12 @@ void CMakeProcess::handleProcessFinished(int code, QProcess::ExitStatus status) m_future->reportFinished(); emit finished(code, status); + + const QTime format = QTime(0, 0, 0, 0).addMSecs(m_elapsed.elapsed() + 500); + QString time = format.toString("h:mm:ss"); + if (time.startsWith("0:")) + time.remove(0, 2); // Don't display zero hours + Core::MessageManager::write(tr("Elapsed time: %1.") .arg(time)); } void CMakeProcess::checkForCancelled() diff --git a/src/plugins/cmakeprojectmanager/cmakeprocess.h b/src/plugins/cmakeprojectmanager/cmakeprocess.h index 6d03d1ab832..d71a56629f5 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprocess.h +++ b/src/plugins/cmakeprojectmanager/cmakeprocess.h @@ -31,6 +31,7 @@ #include +#include #include #include @@ -73,6 +74,7 @@ private: std::unique_ptr> m_future; bool m_processWasCanceled = false; QTimer m_cancelTimer; + QElapsedTimer m_elapsed; }; } // namespace Internal