diff --git a/cockatrice/src/dlg_filter_games.cpp b/cockatrice/src/dlg_filter_games.cpp index 9b7f2982..3d82f419 100644 --- a/cockatrice/src/dlg_filter_games.cpp +++ b/cockatrice/src/dlg_filter_games.cpp @@ -112,34 +112,6 @@ DlgFilterGames::DlgFilterGames(const QMap &_allGameTypes, GamesPro } void DlgFilterGames::actOk() { - QSettings settings; - settings.beginGroup("filter_games"); - settings.setValue( - "unavailable_games_visible", - unavailableGamesVisibleCheckBox->isChecked() - ); - settings.setValue( - "password_protected_games_visible", - passwordProtectedGamesVisibleCheckBox->isChecked() - ); - settings.setValue("game_name_filter", gameNameFilterEdit->text()); - settings.setValue("creator_name_filter", creatorNameFilterEdit->text()); - - QMapIterator gameTypeIterator(allGameTypes); - QMapIterator checkboxIterator(gameTypeFilterCheckBoxes); - while (gameTypeIterator.hasNext()) { - gameTypeIterator.next(); - checkboxIterator.next(); - - settings.setValue( - "game_type/" + hashGameType(gameTypeIterator.value()), - checkboxIterator.value()->isChecked() - ); - } - - settings.setValue("min_players", maxPlayersFilterMinSpinBox->value()); - settings.setValue("max_players", maxPlayersFilterMaxSpinBox->value()); - accept(); } diff --git a/cockatrice/src/gameselector.cpp b/cockatrice/src/gameselector.cpp index 8187a875..3c158ac4 100644 --- a/cockatrice/src/gameselector.cpp +++ b/cockatrice/src/gameselector.cpp @@ -109,6 +109,7 @@ void GameSelector::actSetFilter() gameListProxyModel->setCreatorNameFilter(dlg.getCreatorNameFilter()); gameListProxyModel->setGameTypeFilter(dlg.getGameTypeFilter()); gameListProxyModel->setMaxPlayersFilter(dlg.getMaxPlayersFilterMin(), dlg.getMaxPlayersFilterMax()); + gameListProxyModel->saveFilterParameters(gameTypeMap); } void GameSelector::actClearFilter() diff --git a/cockatrice/src/gamesmodel.cpp b/cockatrice/src/gamesmodel.cpp index de6db572..dd8adece 100644 --- a/cockatrice/src/gamesmodel.cpp +++ b/cockatrice/src/gamesmodel.cpp @@ -253,6 +253,33 @@ void GamesProxyModel::loadFilterParameters(const QMap &allGameType invalidateFilter(); } +void GamesProxyModel::saveFilterParameters(const QMap &allGameTypes) +{ + QSettings settings; + settings.beginGroup("filter_games"); + + settings.setValue("unavailable_games_visible", unavailableGamesVisible); + settings.setValue( + "password_protected_games_visible", + passwordProtectedGamesVisible + ); + settings.setValue("game_name_filter", gameNameFilter); + settings.setValue("creator_name_filter", creatorNameFilter); + + QMapIterator gameTypeIterator(allGameTypes); + while (gameTypeIterator.hasNext()) { + gameTypeIterator.next(); + + settings.setValue( + "game_type/" + hashGameType(gameTypeIterator.value()), + gameTypeFilter.contains(gameTypeIterator.key()) + ); + } + + settings.setValue("min_players", maxPlayersFilterMin); + settings.setValue("max_players", maxPlayersFilterMax); +} + bool GamesProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &/*sourceParent*/) const { GamesModel *model = qobject_cast(sourceModel()); diff --git a/cockatrice/src/gamesmodel.h b/cockatrice/src/gamesmodel.h index cb719299..0f4056e3 100644 --- a/cockatrice/src/gamesmodel.h +++ b/cockatrice/src/gamesmodel.h @@ -73,7 +73,7 @@ public: void setMaxPlayersFilter(int _maxPlayersFilterMin, int _maxPlayersFilterMax); void resetFilterParameters(); void loadFilterParameters(const QMap &allGameTypes); - void saveFilterParameters(); + void saveFilterParameters(const QMap &allGameTypes); protected: bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; };