From d76a2f4fcd44ff4371795163c458e80640f867cf Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Fri, 28 Feb 2020 15:09:35 +0100 Subject: [PATCH] Deduplicate elapsed time formatting While it's nice to see my code spreading, I still prefer to have it at one place. Change-Id: I7bdb13c47ed7e96227deeb14b0a8070aa40148de Reviewed-by: Orgad Shaneh --- src/libs/utils/stringutils.cpp | 10 ++++++++++ src/libs/utils/stringutils.h | 2 +- src/plugins/clangtools/clangtoolruncontrol.cpp | 8 +++----- src/plugins/cmakeprojectmanager/cmakeprocess.cpp | 8 +++----- src/plugins/cpptools/builtinindexingsupport.cpp | 6 +++--- src/plugins/projectexplorer/buildmanager.cpp | 8 +++----- 6 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/libs/utils/stringutils.cpp b/src/libs/utils/stringutils.cpp index f73e9d81444..070abd79a1f 100644 --- a/src/libs/utils/stringutils.cpp +++ b/src/libs/utils/stringutils.cpp @@ -30,11 +30,13 @@ #include #include +#include #include #include #include #include #include +#include #include @@ -383,4 +385,12 @@ QString quoteAmpersands(const QString &text) return result.replace("&", "&&"); } +QString formatElapsedTime(qint64 elapsed) +{ + elapsed += 500; // round up + const QString format = QString::fromLatin1(elapsed >= 3600000 ? "h:mm:ss" : "mm:ss"); + const QString time = QTime(0, 0).addMSecs(elapsed).toString(format); + return QCoreApplication::translate("StringUtils", "Elapsed time: %1.").arg(time); +} + } // namespace Utils diff --git a/src/libs/utils/stringutils.h b/src/libs/utils/stringutils.h index d07a734a9b3..430b2a3fd80 100644 --- a/src/libs/utils/stringutils.h +++ b/src/libs/utils/stringutils.h @@ -100,6 +100,6 @@ T makeUniquelyNumbered(const T &preferred, const Container &reserved) return tryName; } - +QTCREATOR_UTILS_EXPORT QString formatElapsedTime(qint64 elapsed); } // namespace Utils diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp index 2221f9a34b4..49bef96a7c5 100644 --- a/src/plugins/clangtools/clangtoolruncontrol.cpp +++ b/src/plugins/clangtools/clangtoolruncontrol.cpp @@ -61,6 +61,7 @@ #include #include #include +#include #include #include @@ -345,11 +346,8 @@ void ClangToolRunWorker::stop() reportStopped(); // Print elapsed time since start - 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 - appendMessage(tr("Elapsed time: %1.") .arg(time), NormalMessageFormat); + const QString elapsedTime = Utils::formatElapsedTime(m_elapsed.elapsed()); + appendMessage(elapsedTime, NormalMessageFormat); } void ClangToolRunWorker::analyzeNextFile() diff --git a/src/plugins/cmakeprojectmanager/cmakeprocess.cpp b/src/plugins/cmakeprojectmanager/cmakeprocess.cpp index 8fce28e1ea6..2c603d7331d 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprocess.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprocess.cpp @@ -35,6 +35,7 @@ #include #include +#include #include #include @@ -237,11 +238,8 @@ void CMakeProcess::handleProcessFinished(int code, QProcess::ExitStatus status) 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)); + const QString elapsedTime = Utils::formatElapsedTime(m_elapsed.elapsed()); + Core::MessageManager::write(elapsedTime); } void CMakeProcess::checkForCancelled() diff --git a/src/plugins/cpptools/builtinindexingsupport.cpp b/src/plugins/cpptools/builtinindexingsupport.cpp index 484c3adcd58..9673a995f3f 100644 --- a/src/plugins/cpptools/builtinindexingsupport.cpp +++ b/src/plugins/cpptools/builtinindexingsupport.cpp @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -173,9 +174,8 @@ void indexFindErrors(QFutureInterface &indexingFuture, indexingFuture.setProgressValue(files.size() - (files.size() - (i + 1))); } - const QTime format = QTime(0, 0, 0, 0).addMSecs(timer.elapsed() + 500); - const QString time = format.toString(QLatin1String("hh:mm:ss")); - qDebug("FindErrorsIndexing: Finished after %s.", qPrintable(time)); + const QString elapsedTime = Utils::formatElapsedTime(timer.elapsed()); + qDebug("FindErrorsIndexing: %s", qPrintable(elapsedTime)); } void index(QFutureInterface &indexingFuture, diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index 27c46a54a61..41bcc17ccc8 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -458,11 +459,8 @@ void BuildManager::updateTaskCount() void BuildManager::finish() { - const QTime format = QTime(0, 0, 0, 0).addMSecs(d->m_elapsed.elapsed() + 500); - QString time = format.toString("h:mm:ss"); - if (time.startsWith("0:")) - time.remove(0, 2); // Don't display zero hours - m_instance->addToOutputWindow(tr("Elapsed time: %1.") .arg(time), BuildStep::OutputFormat::NormalMessage); + const QString elapsedTime = Utils::formatElapsedTime(d->m_elapsed.elapsed()); + m_instance->addToOutputWindow(elapsedTime, BuildStep::OutputFormat::NormalMessage); QApplication::alert(ICore::mainWindow(), 3000); }