1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-04-17 11:56:46 +02:00

Restored mod filter functionality in Launcher

This commit is contained in:
Ivan Savenko 2024-11-14 16:42:30 +00:00
parent 41466238fc
commit 065a8d5fcf
2 changed files with 26 additions and 4 deletions

View File

@ -268,12 +268,33 @@ void CModFilterModel::setTypeFilter(ModFilterMask newFilterMask)
invalidateFilter();
}
bool CModFilterModel::filterMatchesCategory(const QModelIndex & source) const
{
QString modID =source.data(ModRoles::ModNameRole).toString();
ModState mod = base->model->getMod(modID);
switch (filterMask)
{
case ModFilterMask::ALL:
return true;
case ModFilterMask::AVAILABLE:
return !mod.isInstalled();
case ModFilterMask::INSTALLED:
return mod.isInstalled();
case ModFilterMask::UPDATEABLE:
return mod.isUpdateAvailable();
case ModFilterMask::ENABLED:
return mod.isInstalled() && mod.isEnabled();
case ModFilterMask::DISABLED:
return mod.isInstalled() && mod.isDisabled();
}
assert(0);
return false;
}
bool CModFilterModel::filterMatchesThis(const QModelIndex & source) const
{
//QString modID =source.data(ModRoles::ModNameRole).toString();
//ModState mod = base->model->getMod(modID);
return /*(mod.getModStatus() & filterMask) == filteredType &&*/
QSortFilterProxyModel::filterAcceptsRow(source.row(), source.parent());
return filterMatchesCategory(source) && QSortFilterProxyModel::filterAcceptsRow(source.row(), source.parent());
}
bool CModFilterModel::filterAcceptsRow(int source_row, const QModelIndex & source_parent) const

View File

@ -93,6 +93,7 @@ class CModFilterModel : public QSortFilterProxyModel
ModFilterMask filterMask;
bool filterMatchesThis(const QModelIndex & source) const;
bool filterMatchesCategory(const QModelIndex & source) const;
bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const override;