From 5993a4290821c1f0baa13bf3c94766d4ccf016c4 Mon Sep 17 00:00:00 2001 From: DanielSvoboda Date: Wed, 9 Oct 2024 02:02:39 -0300 Subject: [PATCH] Sort / Formatting --- src/emulator.cpp | 2 +- src/qt_gui/game_info.h | 3 +++ src/qt_gui/game_list_frame.cpp | 26 ++++++++++++++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/emulator.cpp b/src/emulator.cpp index 2cb300caa..c6535f87a 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -81,8 +81,8 @@ Emulator::Emulator() { // Load renderdoc module. VideoCore::LoadRenderDoc(); -#ifdef ENABLE_QT_GUI // Start the timer (Play Time) +#ifdef ENABLE_QT_GUI start_time = std::chrono::steady_clock::now(); const auto user_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); QString filePath = QString::fromStdString((user_dir / "play_time.txt").string()); diff --git a/src/qt_gui/game_info.h b/src/qt_gui/game_info.h index 9db25482a..8f65803bf 100644 --- a/src/qt_gui/game_info.h +++ b/src/qt_gui/game_info.h @@ -60,6 +60,9 @@ public: if (auto app_ver = psf.GetString("APP_VER"); app_ver.has_value()) { game.version = *app_ver; } + if (const auto play_time = psf.GetString("PLAY_TIME"); play_time.has_value()) { + game.play_time = *play_time; + } } return game; } diff --git a/src/qt_gui/game_list_frame.cpp b/src/qt_gui/game_list_frame.cpp index 5d1b8d1ed..acd486aee 100644 --- a/src/qt_gui/game_list_frame.cpp +++ b/src/qt_gui/game_list_frame.cpp @@ -32,7 +32,6 @@ GameListFrame::GameListFrame(std::shared_ptr game_info_get, QWidg this->setColumnWidth(5, 90); // Size this->setColumnWidth(6, 90); // Version this->setColumnWidth(7, 100); // Play Time - this->setColumnWidth(8, 90); // Path QStringList headers; headers << tr("Icon") << tr("Name") << tr("Serial") << tr("Region") << tr("Firmware") << tr("Size") << tr("Version") << tr("Play Time") << tr("Path"); @@ -104,7 +103,30 @@ void GameListFrame::PopulateGameList() { SetTableItem(i, 6, QString::fromStdString(m_game_info->m_games[i].version)); QString playTime = GetPlayTime(m_game_info->m_games[i].serial); - SetTableItem(i, 7, playTime); + if (playTime.isEmpty()) { + m_game_info->m_games[i].play_time = "0:00:00"; + SetTableItem(i, 7, "0"); + } else { + QStringList timeParts = playTime.split(':'); + int hours = timeParts[0].toInt(); + int minutes = timeParts[1].toInt(); + int seconds = timeParts[2].toInt(); + + QString formattedPlayTime; + if (hours > 0) { + formattedPlayTime += QString("%1h ").arg(hours); + } + if (minutes > 0) { + formattedPlayTime += QString("%1m ").arg(minutes); + } + if (seconds > 0 || formattedPlayTime.isEmpty()) { + formattedPlayTime += QString("%1s").arg(seconds); + } + + formattedPlayTime = formattedPlayTime.trimmed(); + m_game_info->m_games[i].play_time = playTime.toStdString(); + SetTableItem(i, 7, formattedPlayTime); + } QString path; Common::FS::PathToQString(path, m_game_info->m_games[i].path);