- DownloadView columns can be now hidden by user preference. Settings are persistent
[qtrapids] / src / include / qtrapids / format.hpp
index 2fcbc6f..1c6e3d3 100644 (file)
@@ -4,7 +4,7 @@
 #include <qtrapids/info.hpp>
 #include <QtCore/QString>
 
-
+#include <QDebug>
 
 namespace qtrapids
 {
@@ -27,6 +27,8 @@ static char const* size_names[] = {
        "KB",
        "B"
 };
+
+const qulonglong SECONDS_IN_DAY = 60*60*24;
 }
 
 static inline QString formatSize(qulonglong size)
@@ -45,6 +47,46 @@ static inline QString formatSize(qulonglong size)
 }
 
 
+inline QString formatElapsedTime(qulonglong seconds)
+{
+       qulonglong hours = 0, minutes = 0, secsLeft = 0;
+       QString dayStr, hourStr, minStr, secStr;
+       dayStr = hourStr = minStr = secStr = QString::number(0);
+       
+       //result.reserve(8);
+       
+       hours = seconds / 3600;
+       secsLeft = seconds % 3600;
+       minutes = secsLeft / 60;
+       secsLeft = secsLeft % 60;
+
+       // If more than 24 hours, format time as days, hours.
+       // Otherwise hours : mins : secs
+       if (hours >= 24) {
+               dayStr = QString::number(hours / 24);
+               hourStr = QString::number(hours % 24);
+               return dayStr + 'd' + ' ' + hourStr + 'h';
+       } else if (hours < 10) {
+               hourStr.append(QString::number(hours));
+       } else {
+               hourStr = QString::number(hours);
+       }
+       
+       if (minutes < 10) {
+               minStr.append(QString::number(minutes));
+       } else {
+               minStr = QString::number(minutes);
+       }
+       
+       if (secsLeft < 10) {
+               secStr.append(QString::number(secsLeft));
+       } else {
+               secStr = QString::number(secsLeft);
+       }
+               
+       return hourStr + ':' + minStr + ':' + secStr;
+}
+
 } // namespace qtrapids
 
 #endif // _QTRAPIDS_FORMAT_HPP_