Properly handle 0 seconds in secondsToString()
authorMichael Marley <michael@michaelmarley.com>
Sat, 2 Jul 2016 14:20:58 +0000 (10:20 -0400)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 7 Sep 2016 20:11:40 +0000 (22:11 +0200)
Previously if 0 seconds was passed in, an empty string would be
returned.  Instead, "0 sec" should be returned.

Resolves GH-223.

src/common/util.cpp

index 39ce4d3..3953ea0 100644 (file)
@@ -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")));
 
     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(", ");
 }
 
 
 }