Diffstat (limited to 'noncore/apps/opie-reader/util.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/util.cpp | 36 |
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 @@ +#include "util.h" + +QString filesize(unsigned long l) +{ + char units[] = { 'K', 'M', 'G' }; + int iu = 0; + while (l > 999 && iu < sizeof(units)) + { + l = (l+512)/1024; + iu++; + } + QString ret = QString::number(l); + if (iu != 0) + { + ret += QChar(units[iu-1]); + } + return ret; +} + +QString percent(unsigned long pos, unsigned long len) +{ + unsigned long permil = 0; + if (len != 0) + { + permil = (1000*pos+len/2)/len; + } + unsigned long percen = permil/10; + unsigned long frac = permil - 10*percen; + return QString::number(percen) + "." + QString::number(frac); +} + +QString fmt(unsigned long pos, unsigned long len) +{ + QString ret = filesize(pos) + "/" + filesize(len) + " : " + percent(pos,len) +"%"; + return ret; +} |