Split multiplayer code into its own class

This commit is contained in:
James Rowe 2018-04-01 00:06:48 -06:00
parent ddbbab8fd6
commit f346a9d372
9 changed files with 253 additions and 195 deletions

View file

@ -11,6 +11,7 @@
#include "citra_qt/multiplayer/lobby.h"
#include "citra_qt/multiplayer/lobby_p.h"
#include "citra_qt/multiplayer/message.h"
#include "citra_qt/multiplayer/state.h"
#include "citra_qt/multiplayer/validation.h"
#include "citra_qt/ui_settings.h"
#include "common/logging/log.h"
@ -51,9 +52,9 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list,
ui->nickname->setText(UISettings::values.nickname);
// UI Buttons
GMainWindow* p = reinterpret_cast<GMainWindow*>(parent);
MultiplayerState* p = reinterpret_cast<MultiplayerState*>(parent);
connect(ui->refresh_list, &QPushButton::pressed, this, &Lobby::RefreshLobby);
connect(ui->chat, &QPushButton::pressed, p, &GMainWindow::OnOpenNetworkRoom);
connect(ui->chat, &QPushButton::pressed, p, &MultiplayerState::OnOpenNetworkRoom);
connect(ui->games_owned, &QCheckBox::stateChanged, proxy,
&LobbyFilterProxyModel::SetFilterOwned);
connect(ui->hide_full, &QCheckBox::stateChanged, proxy, &LobbyFilterProxyModel::SetFilterFull);
@ -64,7 +65,7 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list,
// Actions
connect(this, &Lobby::LobbyRefreshed, this, &Lobby::OnRefreshLobby);
// TODO(jroweboy): change this slot to OnConnected?
connect(this, &Lobby::Connected, p, &GMainWindow::OnOpenNetworkRoom);
connect(this, &Lobby::Connected, p, &MultiplayerState::OnOpenNetworkRoom);
// setup the callbacks for network updates
if (auto member = Network::GetRoomMember().lock()) {
@ -90,8 +91,6 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list,
ui->chat->setDisabled(true);
}
Lobby::~Lobby() {}
const QString Lobby::PasswordPrompt() {
bool ok;
const QString text =
@ -305,7 +304,7 @@ void Lobby::OnConnection() {
ShowError(NetworkMessage::UNABLE_TO_CONNECT);
break;
case Network::RoomMember::State::Joining:
auto parent = static_cast<GMainWindow*>(parentWidget());
auto parent = static_cast<MultiplayerState*>(parentWidget());
parent->OnOpenNetworkRoom();
close();
break;