Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

util.cpp

Go to the documentation of this file.
00001 #include "util.h"
00002 #include <limits.h>
00003 
00004 QString filesize(unsigned long l)
00005 {
00006   char units[] = { 'K', 'M', 'G' };
00007   int iu = 0;
00008   while (l > 999 && iu < sizeof(units))
00009     {
00010       l = (l+512)/1024;
00011       iu++;
00012     }
00013   QString ret = QString::number(l);
00014   if (iu != 0)
00015     {
00016       ret += QChar(units[iu-1]);
00017     }
00018   return ret;
00019 }
00020 
00021 QString percent(unsigned long pos, unsigned long len)
00022 {
00023   unsigned long permil = 0;
00024   if (len != 0)
00025     {
00026       if (pos > UINT_MAX/1000)
00027         {
00028           unsigned long l1 = (len+500)/1000;
00029           permil = (pos+l1/2)/l1;
00030         }
00031       else
00032         {
00033           permil = (1000*pos+len/2)/len;
00034         }
00035     }
00036   unsigned long percen = permil/10;
00037   unsigned long frac = permil - 10*percen;
00038   return QString::number(percen) + "." + QString::number(frac);
00039 }
00040 
00041 QString fmt(unsigned long pos, unsigned long len)
00042 {
00043   QString ret = filesize(pos) + "/" + filesize(len) + " : " + percent(pos,len) +"%";
00044   return ret;
00045 }

Generated on Sat Nov 5 16:16:59 2005 for OPIE by  doxygen 1.4.2