diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index 39bb2999ba..cd15a229e4 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -36,7 +36,7 @@ #include "common/scope_exit.h" #include "common/settings.h" #include "common/string_util.h" -#include "common/play_time_manager.h" +#include "frontend_common/play_time_manager.h" #include "core/core.h" #include "core/cpu_manager.h" #include "core/crypto/key_manager.h" diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 5f75fa0f53..96ea429e5a 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -104,8 +104,6 @@ add_library( parent_of_member.h point.h precompiled_headers.h - play_time_manager.cpp - play_time_manager.h quaternion.h range_map.h range_mutex.h diff --git a/src/frontend_common/CMakeLists.txt b/src/frontend_common/CMakeLists.txt index 70e142bb0c..6b2227bf8d 100644 --- a/src/frontend_common/CMakeLists.txt +++ b/src/frontend_common/CMakeLists.txt @@ -7,6 +7,8 @@ add_library(frontend_common STATIC content_manager.h firmware_manager.h firmware_manager.cpp + play_time_manager.cpp + play_time_manager.h ) create_target_directory_groups(frontend_common) diff --git a/src/common/play_time_manager.cpp b/src/frontend_common/play_time_manager.cpp similarity index 99% rename from src/common/play_time_manager.cpp rename to src/frontend_common/play_time_manager.cpp index 6ab08fc077..55a8f462e8 100644 --- a/src/common/play_time_manager.cpp +++ b/src/frontend_common/play_time_manager.cpp @@ -11,7 +11,7 @@ #include "common/settings.h" #include "common/thread.h" #include "core/hle/service/acc/profile_manager.h" -#include "common/play_time_manager.h" +#include "play_time_manager.h" namespace PlayTime { diff --git a/src/common/play_time_manager.h b/src/frontend_common/play_time_manager.h similarity index 100% rename from src/common/play_time_manager.h rename to src/frontend_common/play_time_manager.h diff --git a/src/qt_common/CMakeLists.txt b/src/qt_common/CMakeLists.txt index aa931f113e..7c4c7e4321 100644 --- a/src/qt_common/CMakeLists.txt +++ b/src/qt_common/CMakeLists.txt @@ -27,6 +27,8 @@ add_library(qt_common STATIC qt_rom_util.h qt_rom_util.cpp qt_applet_util.h qt_applet_util.cpp qt_progress_dialog.h qt_progress_dialog.cpp + qt_playtime_manager.cpp + qt_playtime_manager.h ) diff --git a/src/qt_common/qt_playtime_manager.cpp b/src/qt_common/qt_playtime_manager.cpp new file mode 100644 index 0000000000..3cc472a914 --- /dev/null +++ b/src/qt_common/qt_playtime_manager.cpp @@ -0,0 +1,19 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "qt_playtime_manager.h" + +QString ReadablePlayTime(qulonglong time_seconds) { + if (time_seconds == 0) { + return {}; + } + const auto time_minutes = std::max(static_cast(time_seconds) / 60, 1.0); + const auto time_hours = static_cast(time_seconds) / 3600; + const bool is_minutes = time_minutes < 60; + const char* unit = is_minutes ? "m" : "h"; + const auto value = is_minutes ? time_minutes : time_hours; + + return QStringLiteral("%L1 %2") + .arg(value, 0, 'f', !is_minutes && time_seconds % 60 != 0) + .arg(QString::fromUtf8(unit)); +} diff --git a/src/qt_common/qt_playtime_manager.h b/src/qt_common/qt_playtime_manager.h new file mode 100644 index 0000000000..dafebf594b --- /dev/null +++ b/src/qt_common/qt_playtime_manager.h @@ -0,0 +1,8 @@ + +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#include + +// Converts a length of time in seconds into a readable format +QString ReadablePlayTime(qulonglong time_seconds); \ No newline at end of file diff --git a/src/yuzu/game_list.h b/src/yuzu/game_list.h index 5f685a5648..3336acca04 100644 --- a/src/yuzu/game_list.h +++ b/src/yuzu/game_list.h @@ -23,7 +23,7 @@ #include "qt_common/uisettings.h" #include "qt_common/qt_game_util.h" #include "yuzu/compatibility_list.h" -#include "common/play_time_manager.h" +#include "frontend_common/play_time_manager.h" namespace Core { class System; diff --git a/src/yuzu/game_list_p.h b/src/yuzu/game_list_p.h index 2dfa42f71d..d6387dfd00 100644 --- a/src/yuzu/game_list_p.h +++ b/src/yuzu/game_list_p.h @@ -21,7 +21,7 @@ #include "common/common_types.h" #include "common/logging/log.h" #include "common/string_util.h" -#include "common/play_time_manager.h"" +#include "qt_common/qt_playtime_manager.h" #include "qt_common/uisettings.h" #include "yuzu/util/util.h" diff --git a/src/yuzu/game_list_worker.h b/src/yuzu/game_list_worker.h index 022898708b..b83f0bdf25 100644 --- a/src/yuzu/game_list_worker.h +++ b/src/yuzu/game_list_worker.h @@ -20,7 +20,7 @@ #include "core/file_sys/registered_cache.h" #include "qt_common/uisettings.h" #include "yuzu/compatibility_list.h" -#include "common/play_time_manager.h"" +#include "frontend_common/play_time_manager.h" namespace Core { class System; diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 3e3fe440dc..7ade4a2cdc 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -163,7 +163,7 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual #include "yuzu/install_dialog.h" #include "yuzu/loading_screen.h" #include "yuzu/main.h" -#include "common/play_time_manager.h" +#include "frontend_common/play_time_manager.h" #include "yuzu/startup_checks.h" #include "qt_common/uisettings.h" #include "yuzu/util/clickable_label.h" diff --git a/src/yuzu/util/util.cpp b/src/yuzu/util/util.cpp index f21200e059..844da5c401 100644 --- a/src/yuzu/util/util.cpp +++ b/src/yuzu/util/util.cpp @@ -48,21 +48,6 @@ QPixmap CreateCirclePixmapFromColor(const QColor& color) { return circle_pixmap; } -QString ReadableDuration(qulonglong time_seconds) { - if (time_seconds == 0) { - return {}; - } - const auto time_minutes = std::max(static_cast(time_seconds) / 60, 1.0); - const auto time_hours = static_cast(time_seconds) / 3600; - const bool is_minutes = time_minutes < 60; - const char* unit = is_minutes ? "m" : "h"; - const auto value = is_minutes ? time_minutes : time_hours; - - return QStringLiteral("%L1 %2") - .arg(value, 0, 'f', !is_minutes && time_seconds % 60 != 0) - .arg(QString::fromUtf8(unit)); -} - bool SaveIconToFile(const std::filesystem::path& icon_path, const QImage& image) { #if defined(WIN32) #pragma pack(push, 2) diff --git a/src/yuzu/util/util.h b/src/yuzu/util/util.h index e845aea4cc..4094cf6c2b 100644 --- a/src/yuzu/util/util.h +++ b/src/yuzu/util/util.h @@ -27,6 +27,3 @@ * @return bool If the operation succeeded */ [[nodiscard]] bool SaveIconToFile(const std::filesystem::path& icon_path, const QImage& image); - -// Converts a length of time in seconds into a readable format -QString ReadableDuration(qulonglong time_seconds); \ No newline at end of file