- Added rate limit preferences to DBus client/server implementation
[qtrapids] / src / include / qtrapids / format.hpp
1 #ifndef _QTRAPIDS_FORMAT_HPP_
2 #define _QTRAPIDS_FORMAT_HPP_
3
4 #include <qtrapids/info.hpp>
5 #include <QtCore/QString>
6
7
8
9 namespace qtrapids
10 {
11
12
13 static inline QString formatProgress(uint progress)
14 {
15         return QString::number(progress / torrent_progress_percent);
16 }
17
18 namespace {
19
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;
23
24 static char const* size_names[] = {
25         "GB",
26         "MB",
27         "KB",
28         "B"
29 };
30 }
31
32 static inline QString formatSize(qulonglong size)
33 {
34         qulonglong unit = size_GB;
35         char const ** unit_name = &size_names[0];
36         QString ret("");
37         for (unit = size_GB; unit > 0; unit >>= 10, ++unit_name) {
38                 if (size & (~(unit - 1))) {
39                         ret += (QString::number(size / unit) + *unit_name);
40                         return ret;
41                 }
42         }
43         ret = QString::number(size) + "B";
44         return ret;
45 }
46
47
48 } // namespace qtrapids
49
50 #endif // _QTRAPIDS_FORMAT_HPP_
51