diff options
author | FearlessTobi <thm.frey@gmail.com> | 2022-08-27 03:41:19 +0200 |
---|---|---|
committer | FearlessTobi <thm.frey@gmail.com> | 2022-08-27 03:41:19 +0200 |
commit | 2b6ac4463c06cfdf50b1d150311a217d2ee11688 (patch) | |
tree | b3c6e200499949a98a42b05f96bcc01134ca2ef5 /src/yuzu/multiplayer/lobby.cpp | |
parent | 339758c9fce9a211f85f62182d8fa0e1115c229b (diff) |
yuzu/multiplayer: Warn when game is running or no network interface is selected
Diffstat (limited to 'src/yuzu/multiplayer/lobby.cpp')
-rw-r--r-- | src/yuzu/multiplayer/lobby.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/yuzu/multiplayer/lobby.cpp b/src/yuzu/multiplayer/lobby.cpp index 1cc518279c..c5fb846c70 100644 --- a/src/yuzu/multiplayer/lobby.cpp +++ b/src/yuzu/multiplayer/lobby.cpp @@ -6,6 +6,7 @@ #include <QtConcurrent/QtConcurrentRun> #include "common/logging/log.h" #include "common/settings.h" +#include "core/internal_network/network_interface.h" #include "network/network.h" #include "ui_lobby.h" #include "yuzu/game_list_p.h" @@ -22,11 +23,11 @@ #endif Lobby::Lobby(QWidget* parent, QStandardItemModel* list, - std::shared_ptr<Core::AnnounceMultiplayerSession> session, - Network::RoomNetwork& room_network_) + std::shared_ptr<Core::AnnounceMultiplayerSession> session, Core::System& system_) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint), ui(std::make_unique<Ui::Lobby>()), - announce_multiplayer_session(session), room_network{room_network_} { + announce_multiplayer_session(session), system{system_}, room_network{ + system.GetRoomNetwork()} { ui->setupUi(this); // setup the watcher for background connections @@ -114,6 +115,18 @@ void Lobby::OnExpandRoom(const QModelIndex& index) { } void Lobby::OnJoinRoom(const QModelIndex& source) { + if (!Network::GetSelectedNetworkInterface()) { + NetworkMessage::ErrorManager::ShowError( + NetworkMessage::ErrorManager::NO_INTERFACE_SELECTED); + return; + } + + if (system.IsPoweredOn()) { + if (!NetworkMessage::WarnGameRunning()) { + return; + } + } + if (const auto member = room_network.GetRoomMember().lock()) { // Prevent the user from trying to join a room while they are already joining. if (member->GetState() == Network::RoomMember::State::Joining) { |