diff options
author | hjk <qthjk@ovi.com> | 2011-11-18 22:57:30 +0100 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2011-11-21 12:13:00 +0100 |
commit | 7f811ba7b07fb9f0f1ef8564bf59a309b42f4d5b (patch) | |
tree | 21ca72a5fc85c1dcb6cc977f37d5c185564257cf /installerbuilder/libinstaller | |
parent | f91d9ec8e52c800a5fe1c6eebaee7f4311c63bc6 (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.cpp | 23 |
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()) { |