From a6e606714397b076b0d621181a7b16e317fe629d Mon Sep 17 00:00:00 2001 From: DanielSvoboda Date: Thu, 20 Feb 2025 23:19:48 -0300 Subject: [PATCH] QT: Fix search in Grid mode --- src/qt_gui/game_info.cpp | 3 +++ src/qt_gui/game_info.h | 1 + src/qt_gui/main_window.cpp | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/src/qt_gui/game_info.cpp b/src/qt_gui/game_info.cpp index adbf392ed..947f25d84 100644 --- a/src/qt_gui/game_info.cpp +++ b/src/qt_gui/game_info.cpp @@ -49,6 +49,9 @@ void GameInfoClass::GetGameInfo(QWidget* parent) { return readGameInfo(Common::FS::PathFromQString(path)); }).results(); + // used to retrieve values after performing a search + m_games_backup = m_games; + // Progress bar, please be patient :) QProgressDialog dialog(tr("Loading game list, please wait :3"), tr("Cancel"), 0, 0, parent); dialog.setWindowTitle(tr("Loading...")); diff --git a/src/qt_gui/game_info.h b/src/qt_gui/game_info.h index 380c79e70..0759ccc52 100644 --- a/src/qt_gui/game_info.h +++ b/src/qt_gui/game_info.h @@ -17,6 +17,7 @@ public: ~GameInfoClass(); void GetGameInfo(QWidget* parent = nullptr); QVector m_games; + QVector m_games_backup; static bool CompareStrings(GameInfo& a, GameInfo& b) { std::string name_a = a.name, name_b = b.name; diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index 949d7062e..f50b3c7e1 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -659,6 +659,10 @@ void MainWindow::StartGame() { } void MainWindow::SearchGameTable(const QString& text) { + m_game_info->m_games = m_game_info->m_games_backup; + m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); + m_game_list_frame->PopulateGameList(); + if (isTableList) { for (int row = 0; row < m_game_list_frame->rowCount(); row++) { QString game_name = QString::fromStdString(m_game_info->m_games[row].name); @@ -674,6 +678,7 @@ void MainWindow::SearchGameTable(const QString& text) { } } std::sort(filteredGames.begin(), filteredGames.end(), m_game_info->CompareStrings); + m_game_info->m_games = filteredGames; m_game_grid_frame->PopulateGameGrid(filteredGames, true); } }