From dd905a723981a23b27a653020d2046f15833b91e Mon Sep 17 00:00:00 2001 From: David Antunes Date: Tue, 17 Jun 2025 19:11:10 +0100 Subject: [PATCH] fixed sorting on game grid after using search bar --- src/qt_gui/game_grid_frame.cpp | 16 +++++++++------- src/qt_gui/game_grid_frame.h | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/qt_gui/game_grid_frame.cpp b/src/qt_gui/game_grid_frame.cpp index c53c3a924..384c10dc7 100644 --- a/src/qt_gui/game_grid_frame.cpp +++ b/src/qt_gui/game_grid_frame.cpp @@ -90,11 +90,13 @@ void GameGridFrame::PopulateGameGrid(QVector m_games_search, bool from this->crtColumn = -1; QVector m_games_; this->clearContents(); - SortByFavorite(); - if (fromSearch) + if (fromSearch) { + SortByFavorite(&m_games_search); m_games_ = m_games_search; - else + } else { + SortByFavorite(&(m_game_info->m_games)); m_games_ = m_game_info->m_games; + } m_games_shared = std::make_shared>(m_games_); icon_size = m_gui_settings->GetValue(gui::gg_icon_size).toInt(); // update icon size for resize event. @@ -251,10 +253,10 @@ void GameGridFrame::SetFavoriteIcon(QWidget* parentWidget, QVector m_g label->setObjectName("favoriteIcon"); } -void GameGridFrame::SortByFavorite() { - std::sort( - m_game_info->m_games.begin(), m_game_info->m_games.end(), - [this](const GameInfo& a, const GameInfo& b) { return this->CompareWithFavorite(a, b); }); +void GameGridFrame::SortByFavorite(QVector* game_list) { + std::sort(game_list->begin(), game_list->end(), [this](const GameInfo& a, const GameInfo& b) { + return this->CompareWithFavorite(a, b); + }); } bool GameGridFrame::CompareWithFavorite(GameInfo a, GameInfo b) { diff --git a/src/qt_gui/game_grid_frame.h b/src/qt_gui/game_grid_frame.h index a0f6bc747..0a12deb1c 100644 --- a/src/qt_gui/game_grid_frame.h +++ b/src/qt_gui/game_grid_frame.h @@ -49,7 +49,7 @@ public: QWidget* parent = nullptr); void PopulateGameGrid(QVector m_games, bool fromSearch); bool IsValidCellSelected(); - void SortByFavorite(); + void SortByFavorite(QVector* game_list); bool cellClicked = false; int icon_size;