GameListModel: provide Qt::InitialSortOrderRole for sorting
Fixes regression where pixmap columns can't be sorted by default.
This commit is contained in:
parent
8bbc31e0a2
commit
1a7210aa74
|
@ -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);
|
||||
|
|
|
@ -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<int>(game->GetPlatformID()));
|
||||
if (role == Qt::InitialSortOrderRole)
|
||||
return static_cast<int>(game->GetPlatformID());
|
||||
break;
|
||||
case COL_COUNTRY:
|
||||
if (role == Qt::DecorationRole)
|
||||
return Resources::GetCountry(static_cast<int>(game->GetCountryID()));
|
||||
if (role == Qt::InitialSortOrderRole)
|
||||
return static_cast<int>(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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue