From ec2d8821999db81f4da975b00c632aa69226584e Mon Sep 17 00:00:00 2001 From: Megamouse Date: Tue, 9 Apr 2019 22:13:54 +0200 Subject: [PATCH] Qt: add version update hint to game list --- rpcs3/rpcs3qt/game_compatibility.cpp | 5 ++++- rpcs3/rpcs3qt/game_compatibility.h | 3 ++- rpcs3/rpcs3qt/game_list_frame.cpp | 10 +++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/rpcs3/rpcs3qt/game_compatibility.cpp b/rpcs3/rpcs3qt/game_compatibility.cpp index ce8ec6820c..066676b330 100644 --- a/rpcs3/rpcs3qt/game_compatibility.cpp +++ b/rpcs3/rpcs3qt/game_compatibility.cpp @@ -1,4 +1,4 @@ -#include "game_compatibility.h" +#include "game_compatibility.h" #include #include @@ -73,6 +73,9 @@ bool game_compatibility::ReadJSON(const QJsonObject& json_data, bool after_downl // Add date if possible status.date = json_result.value("date").toString(); + // Add version if possible + status.version = json_result.value("update").toString(); + // Add status to map m_compat_database.emplace(std::pair(sstr(key), status)); } diff --git a/rpcs3/rpcs3qt/game_compatibility.h b/rpcs3/rpcs3qt/game_compatibility.h index 8d956f5d03..f9074fe00a 100644 --- a/rpcs3/rpcs3qt/game_compatibility.h +++ b/rpcs3/rpcs3qt/game_compatibility.h @@ -1,4 +1,4 @@ -#pragma once +#pragma once #include @@ -22,6 +22,7 @@ struct compat_status QString color; QString text; QString tooltip; + QString version; }; class game_compatibility : public QObject diff --git a/rpcs3/rpcs3qt/game_list_frame.cpp b/rpcs3/rpcs3qt/game_list_frame.cpp index 2a558402ba..2956f299a2 100644 --- a/rpcs3/rpcs3qt/game_list_frame.cpp +++ b/rpcs3/rpcs3qt/game_list_frame.cpp @@ -1300,11 +1300,19 @@ int game_list_frame::PopulateGameList() compat_item->setData(Qt::DecorationRole, compat_pixmap(game->compat.color)); } + // Version + QString app_version = qstr(game->info.app_ver); + + if (!game->compat.version.isEmpty() && (app_version == category::unknown || game->compat.version.toDouble() > app_version.toDouble())) + { + app_version = tr("%0 (Update available: %1)").arg(app_version, game->compat.version); + } + m_gameList->setItem(row, gui::column_icon, icon_item); m_gameList->setItem(row, gui::column_name, title_item); m_gameList->setItem(row, gui::column_serial, serial_item); m_gameList->setItem(row, gui::column_firmware, new custom_table_widget_item(game->info.fw)); - m_gameList->setItem(row, gui::column_version, new custom_table_widget_item(game->info.app_ver)); + m_gameList->setItem(row, gui::column_version, new custom_table_widget_item(app_version)); m_gameList->setItem(row, gui::column_category, new custom_table_widget_item(game->info.category)); m_gameList->setItem(row, gui::column_path, new custom_table_widget_item(game->info.path)); m_gameList->setItem(row, gui::column_move, new custom_table_widget_item(sstr(supports_move ? tr("Supported") : tr("Not Supported")), Qt::UserRole, !supports_move));