1 #ifndef _QTRAPIDS_FORMAT_HPP_
2 #define _QTRAPIDS_FORMAT_HPP_
4 #include <qtrapids/info.hpp>
5 #include <QtCore/QString>
13 static inline QString formatProgress(uint progress)
15 return QString::number(progress / torrent_progress_percent);
20 static const qulonglong size_KB = 1024;
21 static const qulonglong size_MB = size_KB << 10;
22 static const qulonglong size_GB = size_MB << 10;
24 static char const* size_names[] = {
31 const qulonglong SECONDS_IN_DAY = 60*60*24;
34 static inline QString formatSize(qulonglong size)
36 qulonglong unit = size_GB;
37 char const ** unit_name = &size_names[0];
39 for (unit = size_GB; unit > 0; unit >>= 10, ++unit_name) {
40 if (size & (~(unit - 1))) {
41 ret += (QString::number(size / unit) + *unit_name);
45 ret = QString::number(size) + "B";
50 inline QString formatElapsedTime(qulonglong seconds)
52 qulonglong hours = 0, minutes = 0, secsLeft = 0;
53 QString dayStr, hourStr, minStr, secStr;
54 dayStr = hourStr = minStr = secStr = QString::number(0);
58 hours = seconds / 3600;
59 secsLeft = seconds % 3600;
60 minutes = secsLeft / 60;
61 secsLeft = secsLeft % 60;
63 // If more than 24 hours, format time as days, hours.
64 // Otherwise hours : mins : secs
66 dayStr = QString::number(hours / 24);
67 hourStr = QString::number(hours % 24);
68 return dayStr + 'd' + ' ' + hourStr + 'h';
69 } else if (hours < 10) {
70 hourStr.append(QString::number(hours));
72 hourStr = QString::number(hours);
76 minStr.append(QString::number(minutes));
78 minStr = QString::number(minutes);
82 secStr.append(QString::number(secsLeft));
84 secStr = QString::number(secsLeft);
87 return hourStr + ':' + minStr + ':' + secStr;
90 } // namespace qtrapids
92 #endif // _QTRAPIDS_FORMAT_HPP_