diff --git a/src/frontend_common/data_manager.cpp b/src/frontend_common/data_manager.cpp index 1df828d028..e5f376720b 100644 --- a/src/frontend_common/data_manager.cpp +++ b/src/frontend_common/data_manager.cpp @@ -49,16 +49,13 @@ u64 ClearDir(DataDir dir, const std::string &user_id) return result; } -const std::string ReadableBytesSize(u64 size) -{ - static constexpr std::array units{"B", "KiB", "MiB", "GiB", "TiB", "PiB"}; - if (size == 0) { +std::string ReadableBytesSize(u64 size) noexcept { + std::array const units{"B", "KB", "MB", "GB", "TB", "PB"}; + u64 const base = 1000; + if (size == 0) return "0 B"; - } - - const int digit_groups = (std::min) (static_cast(std::log10(size) / std::log10(1024)), - static_cast(units.size())); - return fmt::format("{:.1f} {}", size / std::pow(1024, digit_groups), units[digit_groups]); + auto const digit_groups = std::min(u64(std::log10(size) / std::log10(base)), u64(units.size())); + return fmt::format("{:.1f} {}", size / std::pow(base, digit_groups), units[digit_groups]); } u64 DataDirSize(DataDir dir) diff --git a/src/frontend_common/data_manager.h b/src/frontend_common/data_manager.h index c075ab54b6..afb7cb0d2b 100644 --- a/src/frontend_common/data_manager.h +++ b/src/frontend_common/data_manager.h @@ -16,8 +16,7 @@ const std::filesystem::path GetDataDir(DataDir dir, const std::string &user_id = const std::string GetDataDirString(DataDir dir, const std::string &user_id = ""); u64 ClearDir(DataDir dir, const std::string &user_id = ""); - -const std::string ReadableBytesSize(u64 size); +std::string ReadableBytesSize(u64 size) noexcept; u64 DataDirSize(DataDir dir); diff --git a/src/yuzu/util/util.cpp b/src/yuzu/util/util.cpp index 0c035e5058..307f121a49 100644 --- a/src/yuzu/util/util.cpp +++ b/src/yuzu/util/util.cpp @@ -4,7 +4,6 @@ // SPDX-FileCopyrightText: 2015 Citra Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include #include #include @@ -12,6 +11,7 @@ #include "common/logging/log.h" #include "core/frontend/applets/profile_select.h" #include "core/hle/service/acc/profile_manager.h" +#include "frontend_common/data_manager.h" #include "qt_common/qt_common.h" #include "yuzu/util/util.h" @@ -29,16 +29,7 @@ QFont GetMonospaceFont() { } QString ReadableByteSize(qulonglong size) { - static constexpr std::array units{"B", "KiB", "MiB", "GiB", "TiB", "PiB"}; - if (size == 0) { - return QStringLiteral("0"); - } - - const int digit_groups = (std::min)(static_cast(std::log10(size) / std::log10(1024)), - static_cast(units.size())); - return QStringLiteral("%L1 %2") - .arg(size / std::pow(1024, digit_groups), 0, 'f', 1) - .arg(QString::fromUtf8(units[digit_groups])); + return QString::fromStdString(FrontendCommon::DataManager::ReadableBytesSize(size)); } QPixmap CreateCirclePixmapFromColor(const QColor& color) {