diff --git a/Source/Core/DolphinQt2/GameList/GameList.cpp b/Source/Core/DolphinQt2/GameList/GameList.cpp index 10bbd128a9..41a063322d 100644 --- a/Source/Core/DolphinQt2/GameList/GameList.cpp +++ b/Source/Core/DolphinQt2/GameList/GameList.cpp @@ -31,6 +31,7 @@ GameList::GameList(QWidget* parent) : QStackedWidget(parent) m_model = new GameListModel(this); m_table_proxy = new QSortFilterProxyModel(this); m_table_proxy->setSortCaseSensitivity(Qt::CaseInsensitive); + m_table_proxy->setSortRole(Qt::InitialSortOrderRole); m_table_proxy->setSourceModel(m_model); m_list_proxy = new ListProxyModel(this); m_list_proxy->setSourceModel(m_model); diff --git a/Source/Core/DolphinQt2/GameList/GameListModel.cpp b/Source/Core/DolphinQt2/GameList/GameListModel.cpp index 4d00a2e3df..ad2a291908 100644 --- a/Source/Core/DolphinQt2/GameList/GameListModel.cpp +++ b/Source/Core/DolphinQt2/GameList/GameListModel.cpp @@ -27,14 +27,20 @@ QVariant GameListModel::data(const QModelIndex& index, int role) const case COL_PLATFORM: if (role == Qt::DecorationRole) return Resources::GetPlatform(static_cast(game->GetPlatformID())); + if (role == Qt::InitialSortOrderRole) + return static_cast(game->GetPlatformID()); break; case COL_COUNTRY: if (role == Qt::DecorationRole) return Resources::GetCountry(static_cast(game->GetCountryID())); + if (role == Qt::InitialSortOrderRole) + return static_cast(game->GetCountryID()); break; case COL_RATING: if (role == Qt::DecorationRole) return Resources::GetRating(game->GetRating()); + if (role == Qt::InitialSortOrderRole) + return game->GetRating(); break; case COL_BANNER: if (role == Qt::DecorationRole) @@ -48,24 +54,26 @@ QVariant GameListModel::data(const QModelIndex& index, int role) const } break; case COL_TITLE: - if (role == Qt::DisplayRole) + if (role == Qt::DisplayRole || role == Qt::InitialSortOrderRole) return game->GetLongName(); break; case COL_ID: - if (role == Qt::DisplayRole) + if (role == Qt::DisplayRole || role == Qt::InitialSortOrderRole) return game->GetGameID(); break; case COL_DESCRIPTION: - if (role == Qt::DisplayRole) + if (role == Qt::DisplayRole || role == Qt::InitialSortOrderRole) return game->GetDescription(); break; case COL_MAKER: - if (role == Qt::DisplayRole) + if (role == Qt::DisplayRole || role == Qt::InitialSortOrderRole) return game->GetMaker(); break; case COL_SIZE: if (role == Qt::DisplayRole) return FormatSize(game->GetFileSize()); + if (role == Qt::InitialSortOrderRole) + return game->GetFileSize(); break; }