summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/util.cpp
Unidiff
Diffstat (limited to 'noncore/apps/opie-reader/util.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-reader/util.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/noncore/apps/opie-reader/util.cpp b/noncore/apps/opie-reader/util.cpp
new file mode 100644
index 0000000..a736f8b
--- a/dev/null
+++ b/noncore/apps/opie-reader/util.cpp
@@ -0,0 +1,36 @@
1#include "util.h"
2
3QString filesize(unsigned long l)
4{
5 char units[] = { 'K', 'M', 'G' };
6 int iu = 0;
7 while (l > 999 && iu < sizeof(units))
8 {
9 l = (l+512)/1024;
10 iu++;
11 }
12 QString ret = QString::number(l);
13 if (iu != 0)
14 {
15 ret += QChar(units[iu-1]);
16 }
17 return ret;
18}
19
20QString percent(unsigned long pos, unsigned long len)
21{
22 unsigned long permil = 0;
23 if (len != 0)
24 {
25 permil = (1000*pos+len/2)/len;
26 }
27 unsigned long percen = permil/10;
28 unsigned long frac = permil - 10*percen;
29 return QString::number(percen) + "." + QString::number(frac);
30}
31
32QString fmt(unsigned long pos, unsigned long len)
33{
34 QString ret = filesize(pos) + "/" + filesize(len) + " : " + percent(pos,len) +"%";
35 return ret;
36}