From ef203f6bcbdd6f6f3ce480436e6f482b52400571 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Sun, 28 Jun 2020 15:16:09 +0200 Subject: [PATCH] patch_manager: fix owned games o. for all versions --- rpcs3/rpcs3qt/game_list_frame.cpp | 22 +++++++++++++--------- rpcs3/rpcs3qt/game_list_frame.h | 3 +++ rpcs3/rpcs3qt/main_window.cpp | 2 +- rpcs3/rpcs3qt/patch_manager_dialog.cpp | 2 +- rpcs3/rpcs3qt/patch_manager_dialog.ui | 2 +- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/rpcs3/rpcs3qt/game_list_frame.cpp b/rpcs3/rpcs3qt/game_list_frame.cpp index e6605ba176..fa7d065cf7 100644 --- a/rpcs3/rpcs3qt/game_list_frame.cpp +++ b/rpcs3/rpcs3qt/game_list_frame.cpp @@ -1946,20 +1946,13 @@ void game_list_frame::PopulateGameList() } // Version - QString app_version = qstr(game->info.app_ver); - const QString unknown = localized.category.unknown; - - if (app_version == unknown) - { - // Fall back to Disc/Pkg Revision - app_version = qstr(game->info.version); - } + QString app_version = qstr(GetGameVersion(game)); if (game->info.bootable && !game->compat.latest_version.isEmpty()) { // If the app is bootable and the compat database contains info about the latest patch version: // add a hint for available software updates if the app version is unknown or lower than the latest version. - if (app_version == unknown || game->compat.latest_version.toDouble() > app_version.toDouble()) + if (app_version == localized.category.unknown || game->compat.latest_version.toDouble() > app_version.toDouble()) { app_version = tr("%0 (Update available: %1)").arg(app_version, game->compat.latest_version); } @@ -2235,3 +2228,14 @@ QList game_list_frame::GetGameInfo() const { return m_game_data; } + +std::string game_list_frame::GetGameVersion(const game_info& game) +{ + if (game->info.app_ver == sstr(Localized().category.unknown)) + { + // Fall back to Disc/Pkg Revision + return game->info.version; + } + + return game->info.app_ver; +} diff --git a/rpcs3/rpcs3qt/game_list_frame.h b/rpcs3/rpcs3qt/game_list_frame.h index 4a8ba07426..3f450d4ab6 100644 --- a/rpcs3/rpcs3qt/game_list_frame.h +++ b/rpcs3/rpcs3qt/game_list_frame.h @@ -71,6 +71,9 @@ public: QList GetGameInfo() const; + // Returns the visible version string in the game list + static std::string GetGameVersion(const game_info& game); + public Q_SLOTS: void BatchCreatePPUCaches(); void BatchRemovePPUCaches(); diff --git a/rpcs3/rpcs3qt/main_window.cpp b/rpcs3/rpcs3qt/main_window.cpp index fd7fdadb5f..0248bfb244 100644 --- a/rpcs3/rpcs3qt/main_window.cpp +++ b/rpcs3/rpcs3qt/main_window.cpp @@ -1542,7 +1542,7 @@ void main_window::CreateConnects() { if (game) { - games[game->info.serial].insert(game->info.app_ver); + games[game->info.serial].insert(game_list_frame::GetGameVersion(game)); } } } diff --git a/rpcs3/rpcs3qt/patch_manager_dialog.cpp b/rpcs3/rpcs3qt/patch_manager_dialog.cpp index 55c0fee95b..e695e11155 100644 --- a/rpcs3/rpcs3qt/patch_manager_dialog.cpp +++ b/rpcs3/rpcs3qt/patch_manager_dialog.cpp @@ -332,7 +332,7 @@ void patch_manager_dialog::filter_patches(const QString& term) const std::string app_version = item->data(0, app_version_role).toString().toStdString(); if (serial != patch_key::all && - (m_owned_games.find(serial) == m_owned_games.end() || !m_owned_games.at(serial).contains(app_version))) + (m_owned_games.find(serial) == m_owned_games.end() || (app_version != patch_key::all && !m_owned_games.at(serial).contains(app_version)))) { item->setHidden(true); return 0; diff --git a/rpcs3/rpcs3qt/patch_manager_dialog.ui b/rpcs3/rpcs3qt/patch_manager_dialog.ui index 618e487350..8a56c1bf4c 100644 --- a/rpcs3/rpcs3qt/patch_manager_dialog.ui +++ b/rpcs3/rpcs3qt/patch_manager_dialog.ui @@ -121,7 +121,7 @@ - App Version + Game Version