summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/yuzu/multiplayer/lobby.cpp13
-rw-r--r--src/yuzu/uisettings.h7
2 files changed, 19 insertions, 1 deletions
diff --git a/src/yuzu/multiplayer/lobby.cpp b/src/yuzu/multiplayer/lobby.cpp
index 41692c05b..77ac84295 100644
--- a/src/yuzu/multiplayer/lobby.cpp
+++ b/src/yuzu/multiplayer/lobby.cpp
@@ -77,16 +77,23 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list,
77 77
78 // UI Buttons 78 // UI Buttons
79 connect(ui->refresh_list, &QPushButton::clicked, this, &Lobby::RefreshLobby); 79 connect(ui->refresh_list, &QPushButton::clicked, this, &Lobby::RefreshLobby);
80 connect(ui->search, &QLineEdit::textChanged, proxy, &LobbyFilterProxyModel::SetFilterSearch);
80 connect(ui->games_owned, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterOwned); 81 connect(ui->games_owned, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterOwned);
81 connect(ui->hide_empty, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterEmpty); 82 connect(ui->hide_empty, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterEmpty);
82 connect(ui->hide_full, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterFull); 83 connect(ui->hide_full, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterFull);
83 connect(ui->search, &QLineEdit::textChanged, proxy, &LobbyFilterProxyModel::SetFilterSearch);
84 connect(ui->room_list, &QTreeView::doubleClicked, this, &Lobby::OnJoinRoom); 84 connect(ui->room_list, &QTreeView::doubleClicked, this, &Lobby::OnJoinRoom);
85 connect(ui->room_list, &QTreeView::clicked, this, &Lobby::OnExpandRoom); 85 connect(ui->room_list, &QTreeView::clicked, this, &Lobby::OnExpandRoom);
86 86
87 // Actions 87 // Actions
88 connect(&room_list_watcher, &QFutureWatcher<AnnounceMultiplayerRoom::RoomList>::finished, this, 88 connect(&room_list_watcher, &QFutureWatcher<AnnounceMultiplayerRoom::RoomList>::finished, this,
89 &Lobby::OnRefreshLobby); 89 &Lobby::OnRefreshLobby);
90
91 // Load persistent filters after events are connected to make sure they apply
92 ui->search->setText(
93 QString::fromStdString(UISettings::values.multiplayer_filter_text.GetValue()));
94 ui->games_owned->setChecked(UISettings::values.multiplayer_filter_games_owned.GetValue());
95 ui->hide_empty->setChecked(UISettings::values.multiplayer_filter_hide_empty.GetValue());
96 ui->hide_full->setChecked(UISettings::values.multiplayer_filter_hide_full.GetValue());
90} 97}
91 98
92Lobby::~Lobby() = default; 99Lobby::~Lobby() = default;
@@ -204,6 +211,10 @@ void Lobby::OnJoinRoom(const QModelIndex& source) {
204 211
205 // Save settings 212 // Save settings
206 UISettings::values.multiplayer_nickname = ui->nickname->text().toStdString(); 213 UISettings::values.multiplayer_nickname = ui->nickname->text().toStdString();
214 UISettings::values.multiplayer_filter_text = ui->search->text().toStdString();
215 UISettings::values.multiplayer_filter_games_owned = ui->games_owned->isChecked();
216 UISettings::values.multiplayer_filter_hide_empty = ui->hide_empty->isChecked();
217 UISettings::values.multiplayer_filter_hide_full = ui->hide_full->isChecked();
207 UISettings::values.multiplayer_ip = 218 UISettings::values.multiplayer_ip =
208 proxy->data(connection_index, LobbyItemHost::HostIPRole).value<QString>().toStdString(); 219 proxy->data(connection_index, LobbyItemHost::HostIPRole).value<QString>().toStdString();
209 UISettings::values.multiplayer_port = 220 UISettings::values.multiplayer_port =
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h
index f9906be33..bd8b3c18a 100644
--- a/src/yuzu/uisettings.h
+++ b/src/yuzu/uisettings.h
@@ -169,6 +169,13 @@ struct Values {
169 169
170 // multiplayer settings 170 // multiplayer settings
171 Setting<std::string> multiplayer_nickname{linkage, {}, "nickname", Category::Multiplayer}; 171 Setting<std::string> multiplayer_nickname{linkage, {}, "nickname", Category::Multiplayer};
172 Setting<std::string> multiplayer_filter_text{linkage, {}, "filter_text", Category::Multiplayer};
173 Setting<bool> multiplayer_filter_games_owned{linkage, false, "filter_games_owned",
174 Category::Multiplayer};
175 Setting<bool> multiplayer_filter_hide_empty{linkage, false, "filter_games_hide_empty",
176 Category::Multiplayer};
177 Setting<bool> multiplayer_filter_hide_full{linkage, false, "filter_games_hide_full",
178 Category::Multiplayer};
172 Setting<std::string> multiplayer_ip{linkage, {}, "ip", Category::Multiplayer}; 179 Setting<std::string> multiplayer_ip{linkage, {}, "ip", Category::Multiplayer};
173 Setting<u16, true> multiplayer_port{linkage, 24872, 0, 180 Setting<u16, true> multiplayer_port{linkage, 24872, 0,
174 UINT16_MAX, "port", Category::Multiplayer}; 181 UINT16_MAX, "port", Category::Multiplayer};