Add helper function for creating a readable byte size string.

This commit is contained in:
archshift 2015-08-31 21:35:33 -07:00
parent afd06675fa
commit f297a59985
2 changed files with 16 additions and 0 deletions

View file

@ -2,6 +2,9 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include <array>
#include <cmath>
#include "citra_qt/util/util.h" #include "citra_qt/util/util.h"
QFont GetMonospaceFont() { QFont GetMonospaceFont() {
@ -11,3 +14,12 @@ QFont GetMonospaceFont() {
font.setFixedPitch(true); font.setFixedPitch(true);
return font; return font;
} }
QString ReadableByteSize(qulonglong size) {
static const std::array<const char*, 6> units = { "B", "KiB", "MiB", "GiB", "TiB", "PiB" };
if (size == 0)
return "0";
int digit_groups = std::min<int>((int)(std::log10(size) / std::log10(1024)), units.size());
return QString("%L1 %2").arg(size / std::pow(1024, digit_groups), 0, 'f', 1)
.arg(units[digit_groups]);
}

View file

@ -5,6 +5,10 @@
#pragma once #pragma once
#include <QFont> #include <QFont>
#include <QString>
/// Returns a QFont object appropriate to use as a monospace font for debugging widgets, etc. /// Returns a QFont object appropriate to use as a monospace font for debugging widgets, etc.
QFont GetMonospaceFont(); QFont GetMonospaceFont();
/// Convert a size in bytes into a readable format (KiB, MiB, etc.)
QString ReadableByteSize(qulonglong size);