summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/fileutils.cpp
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2012-03-21 14:28:40 +0100
committerTim Jenssen <tim.jenssen@nokia.com>2012-03-27 15:04:31 +0200
commit520d98028f37e550c0cfec34b9c10278c4a44aff (patch)
tree3a64434d02f3b1fa5009de88a7832ad8c56f184f /src/libs/installer/fileutils.cpp
parent564ef626886496ea5e6685f0fc4f96c283245123 (diff)
introduce general humanReadableSize method
Change-Id: I4731be424cf2207e8cc2320ab9e442d02c29aeda Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'src/libs/installer/fileutils.cpp')
-rw-r--r--src/libs/installer/fileutils.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp
index b07b5b08f..ece86aa5d 100644
--- a/src/libs/installer/fileutils.cpp
+++ b/src/libs/installer/fileutils.cpp
@@ -120,6 +120,26 @@ void TempDirDeleter::releaseAndDelete(const QString &path)
}
}
+QString QInstaller::humanReadableSize(const qint64 &size, int precision)
+{
+ double sizeAsDouble = size;
+ static QStringList measures;
+ if (measures.isEmpty())
+ measures << QString::fromLatin1("bytes") << QString::fromLatin1("KiB") << QString::fromLatin1("MiB")
+ << QString::fromLatin1("GiB") << QString::fromLatin1("TiB") << QString::fromLatin1("PiB")
+ << QString::fromLatin1("EiB") << QString::fromLatin1("ZiB") << QString::fromLatin1("YiB");
+
+ QStringListIterator it(measures);
+ QString measure(it.next());
+
+ while (sizeAsDouble >= 1024.0 && it.hasNext()) {
+ measure = it.next();
+ sizeAsDouble /= 1024.0;
+ }
+ return QString::fromLatin1("%1 %2").arg(sizeAsDouble, 0, 'f', precision).arg(measure);
+}
+
+
// -- read, write operations