diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 797436976d..4789ef8900 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -169,8 +169,11 @@ static void ClearPeerPlayerId(ENetPeer* peer) void NetPlayServer::SetupIndex() { - if (!Config::Get(Config::NETPLAY_USE_INDEX)) + if (!Config::Get(Config::NETPLAY_USE_INDEX) || Config::Get(Config::NETPLAY_INDEX_NAME).empty() || + Config::Get(Config::NETPLAY_INDEX_REGION).empty()) + { return; + } NetPlaySession session; diff --git a/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp index 268b151df7..634c3fb17d 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp @@ -227,6 +227,14 @@ void NetPlaySetupDialog::ConnectWidgets() connect(m_host_chunked_upload_limit_box, static_cast(&QSpinBox::valueChanged), this, &NetPlaySetupDialog::SaveSettings); + + connect(m_host_server_browser, &QCheckBox::toggled, this, &NetPlaySetupDialog::SaveSettings); + connect(m_host_server_name, &QLineEdit::textChanged, this, &NetPlaySetupDialog::SaveSettings); + connect(m_host_server_password, &QLineEdit::textChanged, this, &NetPlaySetupDialog::SaveSettings); + connect(m_host_server_region, + static_cast(&QComboBox::currentIndexChanged), this, + &NetPlaySetupDialog::SaveSettings); + #ifdef USE_UPNP connect(m_host_upnp, &QCheckBox::stateChanged, this, &NetPlaySetupDialog::SaveSettings); #endif @@ -328,6 +336,14 @@ void NetPlaySetupDialog::accept() return; } + if (m_host_server_browser->isChecked() && + m_host_server_region->currentData().toString().isEmpty()) + { + ModalMessageBox::critical(this, tr("Error"), + tr("You must provide a region for your session!")); + return; + } + emit Host(items[0]->text()); } }