[PC-BSD Commits] r8199 - pcbsd/stable/libpcbsd
svn at pcbsd.org
svn at pcbsd.org
Mon Dec 13 05:28:05 PST 2010
Author: kris
Date: 2010-12-13 05:28:05 -0800 (Mon, 13 Dec 2010)
New Revision: 8199
Modified:
pcbsd/stable/libpcbsd/utils.cpp
Log:
MFC fix to libpcbsd for BytesToHumanReadable
Modified: pcbsd/stable/libpcbsd/utils.cpp
===================================================================
--- pcbsd/stable/libpcbsd/utils.cpp 2010-12-11 19:50:06 UTC (rev 8198)
+++ pcbsd/stable/libpcbsd/utils.cpp 2010-12-13 13:28:05 UTC (rev 8199)
@@ -57,30 +57,19 @@
QString Utils::bytesToHumanReadable(long long bytes)
{
- QString suffix[] = {"B", "KB", "MB", "GB", "TB"};
- long long remainder = 0;
- int i = 0;
- while ( bytes > 1024 && (i < 4) )
+ float num = bytes;
+ QStringList list;
+ list << "KB" << "MB" << "GB" << "TB";
+
+ QStringListIterator i(list);
+ QString unit("bytes");
+
+ while(num >= 1024.0 && i.hasNext())
{
- remainder = bytes % 1024;
- bytes = bytes / 1024;
- i++;
+ unit = i.next();
+ num /= 1024.0;
}
-
- QString pointval;
- if ( i == 3 ) {
- pointval = QString::number(remainder);
- pointval.truncate(1);
- pointval = "." + pointval;
- }
- if ( i == 4 ) {
- pointval = QString::number(remainder);
- pointval.truncate(2);
- pointval = "." + pointval;
- }
-
- QString result = QString::number(bytes) + pointval;
- return result += suffix[i];
+ return QString().setNum(num,'f',2)+" "+unit;
}
More information about the Commits
mailing list