diff options
| -rw-r--r-- | src/citra_qt/util/util.cpp | 12 | ||||
| -rw-r--r-- | src/citra_qt/util/util.h | 4 | 
2 files changed, 16 insertions, 0 deletions
| diff --git a/src/citra_qt/util/util.cpp b/src/citra_qt/util/util.cpp index f292046b7..8734a8efd 100644 --- a/src/citra_qt/util/util.cpp +++ b/src/citra_qt/util/util.cpp @@ -2,6 +2,9 @@  // Licensed under GPLv2 or any later version  // Refer to the license.txt file included. +#include <array> +#include <cmath> +  #include "citra_qt/util/util.h"  QFont GetMonospaceFont() { @@ -11,3 +14,12 @@ QFont GetMonospaceFont() {      font.setFixedPitch(true);      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]); +} diff --git a/src/citra_qt/util/util.h b/src/citra_qt/util/util.h index 98a944047..ab443ef9b 100644 --- a/src/citra_qt/util/util.h +++ b/src/citra_qt/util/util.h @@ -5,6 +5,10 @@  #pragma once  #include <QFont> +#include <QString>  /// Returns a QFont object appropriate to use as a monospace font for debugging widgets, etc.  QFont GetMonospaceFont(); + +/// Convert a size in bytes into a readable format (KiB, MiB, etc.) +QString ReadableByteSize(qulonglong size); | 
