summaryrefslogtreecommitdiffstats
path: root/installerbuilder/libinstaller
diff options
context:
space:
mode:
authorhjk <qthjk@ovi.com>2011-11-18 22:57:30 +0100
committerTim Jenssen <tim.jenssen@nokia.com>2011-11-21 12:13:00 +0100
commit7f811ba7b07fb9f0f1ef8564bf59a309b42f4d5b (patch)
tree21ca72a5fc85c1dcb6cc977f37d5c185564257cf /installerbuilder/libinstaller
parentf91d9ec8e52c800a5fe1c6eebaee7f4311c63bc6 (diff)
Use more direct way to show human readable sizes.
Change-Id: I7a9a15b695b37f0a85d450650d02454bb7fa9cd9 Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder/libinstaller')
-rw-r--r--installerbuilder/libinstaller/packagemanagergui.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/installerbuilder/libinstaller/packagemanagergui.cpp b/installerbuilder/libinstaller/packagemanagergui.cpp
index f89ce9fa2..2ec4faf44 100644
--- a/installerbuilder/libinstaller/packagemanagergui.cpp
+++ b/installerbuilder/libinstaller/packagemanagergui.cpp
@@ -118,6 +118,27 @@ TRANSLATOR QInstaller::FinishedPage
*/
+static QString humanReadableSize(quint64 intSize)
+{
+ QString unit;
+ double size;
+
+ if (intSize < 1024 * 1024) {
+ size = 1. + intSize / 1024.;
+ unit = QObject::tr("kB");
+ } else if (intSize < 1024 * 1024 * 1024) {
+ size = 1. + intSize / 1024. / 1024.;
+ unit = QObject::tr("MB");
+ } else {
+ size = 1. + intSize / 1024. / 1024. / 1024.;
+ unit = QObject::tr("GB");
+ }
+
+ size = qRound(size * 10) / 10.0;
+ return QString::fromLatin1("%L1 %2").arg(size, 0, 'g', 4).arg(unit);
+}
+
+
class DynamicInstallerPage : public PackageManagerPage
{
public:
@@ -1545,7 +1566,7 @@ void ReadyForInstallationPage::entering()
} else {
m_msgLabel->setText(tr("The volume you selected for installation has insufficient space "
"for the selected components. The installation requires approximately %1.")
- .arg(required.toString()) + tempString);
+ .arg(humanReadableSize(required)) + tempString);
}
setCommitPage(false);
} else if (available - required < 0.01 * vol.size()) {