Code formatting/indentation unified in trunk
[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
21 static const qulonglong size_KB = 1024;
22 static const qulonglong size_MB = size_KB << 10;
23 static const qulonglong size_GB = size_MB << 10;
24
25 static char const* size_names[] =
26 {
27     "GB",
28     "MB",
29     "KB",
30     "B"
31 };
32 }
33
34 static inline QString formatSize(qulonglong size)
35 {
36     qulonglong unit = size_GB;
37     char const ** unit_name = &size_names[0];
38     QString ret("");
39     for (unit = size_GB; unit > 0; unit >>= 10, ++unit_name)
40     {
41         if (size & (~(unit - 1)))
42         {
43             ret += (QString::number(size / unit) + *unit_name);
44             return ret;
45         }
46     }
47     ret = QString::number(size) + "B";
48     return ret;
49 }
50
51
52 } // namespace qtrapids
53
54 #endif // _QTRAPIDS_FORMAT_HPP_
55