|
|
|
@ -77,16 +77,23 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list, |
|
|
|
|
|
|
|
// UI Buttons
|
|
|
|
connect(ui->refresh_list, &QPushButton::clicked, this, &Lobby::RefreshLobby); |
|
|
|
connect(ui->search, &QLineEdit::textChanged, proxy, &LobbyFilterProxyModel::SetFilterSearch); |
|
|
|
connect(ui->games_owned, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterOwned); |
|
|
|
connect(ui->hide_empty, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterEmpty); |
|
|
|
connect(ui->hide_full, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterFull); |
|
|
|
connect(ui->search, &QLineEdit::textChanged, proxy, &LobbyFilterProxyModel::SetFilterSearch); |
|
|
|
connect(ui->room_list, &QTreeView::doubleClicked, this, &Lobby::OnJoinRoom); |
|
|
|
connect(ui->room_list, &QTreeView::clicked, this, &Lobby::OnExpandRoom); |
|
|
|
|
|
|
|
// Actions
|
|
|
|
connect(&room_list_watcher, &QFutureWatcher<AnnounceMultiplayerRoom::RoomList>::finished, this, |
|
|
|
&Lobby::OnRefreshLobby); |
|
|
|
|
|
|
|
// Load persistent filters after events are connected to make sure they apply
|
|
|
|
ui->search->setText( |
|
|
|
QString::fromStdString(UISettings::values.multiplayer_filter_text.GetValue())); |
|
|
|
ui->games_owned->setChecked(UISettings::values.multiplayer_filter_games_owned.GetValue()); |
|
|
|
ui->hide_empty->setChecked(UISettings::values.multiplayer_filter_hide_empty.GetValue()); |
|
|
|
ui->hide_full->setChecked(UISettings::values.multiplayer_filter_hide_full.GetValue()); |
|
|
|
} |
|
|
|
|
|
|
|
Lobby::~Lobby() = default; |
|
|
|
@ -204,6 +211,10 @@ void Lobby::OnJoinRoom(const QModelIndex& source) { |
|
|
|
|
|
|
|
// Save settings
|
|
|
|
UISettings::values.multiplayer_nickname = ui->nickname->text().toStdString(); |
|
|
|
UISettings::values.multiplayer_filter_text = ui->search->text().toStdString(); |
|
|
|
UISettings::values.multiplayer_filter_games_owned = ui->games_owned->isChecked(); |
|
|
|
UISettings::values.multiplayer_filter_hide_empty = ui->hide_empty->isChecked(); |
|
|
|
UISettings::values.multiplayer_filter_hide_full = ui->hide_full->isChecked(); |
|
|
|
UISettings::values.multiplayer_ip = |
|
|
|
proxy->data(connection_index, LobbyItemHost::HostIPRole).value<QString>().toStdString(); |
|
|
|
UISettings::values.multiplayer_port = |
|
|
|
|