From 5dbf544a08ef96a933d61ffa3b7bc711ebdab244 Mon Sep 17 00:00:00 2001 From: Michael Marley Date: Sat, 2 Jul 2016 10:20:58 -0400 Subject: [PATCH] Properly handle 0 seconds in secondsToString() Previously if 0 seconds was passed in, an empty string would be returned. Instead, "0 sec" should be returned. Resolves GH-223. (cherry picked from commit 757dc75aada1e4c5077cf46969f6422bffa08ce3) --- src/common/util.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/common/util.cpp b/src/common/util.cpp index a6acf589..a3d4fc41 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -172,15 +172,20 @@ QString secondsToString(int timeInSeconds) timeUnit.append(qMakePair(60, QCoreApplication::translate("Quassel::secondsToString()", "min"))); timeUnit.append(qMakePair(1, QCoreApplication::translate("Quassel::secondsToString()", "sec"))); - QStringList returnString; - for (int i = 0; i < timeUnit.size(); i++) { - int n = timeInSeconds / timeUnit[i].first; - if (n > 0) { - returnString += QString("%1 %2").arg(QString::number(n), timeUnit[i].second); + if (timeInSeconds != 0) { + QStringList returnString; + for (int i = 0; i < timeUnit.size(); i++) { + int n = timeInSeconds / timeUnit[i].first; + if (n > 0) { + returnString += QString("%1 %2").arg(QString::number(n), timeUnit[i].second); + } + timeInSeconds = timeInSeconds % timeUnit[i].first; } - timeInSeconds = timeInSeconds % timeUnit[i].first; + return returnString.join(", "); + } + else { + return QString("%1 %2").arg(QString::number(timeInSeconds), timeUnit.last().second); } - return returnString.join(", "); } -- 2.20.1