summaryrefslogtreecommitdiff
path: root/src/yuzu/multiplayer/direct_connect.cpp
diff options
context:
space:
mode:
authorZephyron <zephyron@citron-emu.org>2024-12-31 16:19:25 +1000
committerZephyron <zephyron@citron-emu.org>2024-12-31 16:19:25 +1000
commit9427e27e24a7135880ee2881c3c44988e174b41a (patch)
tree83f0062a35be144f6b162eaa823c5b3c7620146e /src/yuzu/multiplayer/direct_connect.cpp
parentb35ae725d20960411e8588b11c12a2d55f86c9d0 (diff)
chore: update project branding to citron
Diffstat (limited to 'src/yuzu/multiplayer/direct_connect.cpp')
-rw-r--r--src/yuzu/multiplayer/direct_connect.cpp137
1 files changed, 0 insertions, 137 deletions
diff --git a/src/yuzu/multiplayer/direct_connect.cpp b/src/yuzu/multiplayer/direct_connect.cpp
deleted file mode 100644
index 74da97e21..000000000
--- a/src/yuzu/multiplayer/direct_connect.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2017 Citra Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include <QComboBox>
-#include <QFuture>
-#include <QIntValidator>
-#include <QRegularExpressionValidator>
-#include <QString>
-#include <QtConcurrent/QtConcurrentRun>
-#include "common/settings.h"
-#include "core/core.h"
-#include "core/internal_network/network_interface.h"
-#include "network/network.h"
-#include "ui_direct_connect.h"
-#include "yuzu/main.h"
-#include "yuzu/multiplayer/client_room.h"
-#include "yuzu/multiplayer/direct_connect.h"
-#include "yuzu/multiplayer/message.h"
-#include "yuzu/multiplayer/state.h"
-#include "yuzu/multiplayer/validation.h"
-#include "yuzu/uisettings.h"
-
-enum class ConnectionType : u8 { TraversalServer, IP };
-
-DirectConnectWindow::DirectConnectWindow(Core::System& system_, QWidget* parent)
- : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint),
- ui(std::make_unique<Ui::DirectConnect>()), system{system_}, room_network{
- system.GetRoomNetwork()} {
-
- ui->setupUi(this);
-
- // setup the watcher for background connections
- watcher = new QFutureWatcher<void>;
- connect(watcher, &QFutureWatcher<void>::finished, this, &DirectConnectWindow::OnConnection);
-
- ui->nickname->setValidator(validation.GetNickname());
- ui->nickname->setText(
- QString::fromStdString(UISettings::values.multiplayer_nickname.GetValue()));
- if (ui->nickname->text().isEmpty() && !Settings::values.yuzu_username.GetValue().empty()) {
- // Use yuzu Web Service user name as nickname by default
- ui->nickname->setText(QString::fromStdString(Settings::values.yuzu_username.GetValue()));
- }
- ui->ip->setValidator(validation.GetIP());
- ui->ip->setText(QString::fromStdString(UISettings::values.multiplayer_ip.GetValue()));
- ui->port->setValidator(validation.GetPort());
- ui->port->setText(QString::number(UISettings::values.multiplayer_port.GetValue()));
-
- // TODO(jroweboy): Show or hide the connection options based on the current value of the combo
- // box. Add this back in when the traversal server support is added.
- connect(ui->connect, &QPushButton::clicked, this, &DirectConnectWindow::Connect);
-}
-
-DirectConnectWindow::~DirectConnectWindow() = default;
-
-void DirectConnectWindow::RetranslateUi() {
- ui->retranslateUi(this);
-}
-
-void DirectConnectWindow::Connect() {
- if (!Network::GetSelectedNetworkInterface()) {
- NetworkMessage::ErrorManager::ShowError(
- NetworkMessage::ErrorManager::NO_INTERFACE_SELECTED);
- return;
- }
- if (!ui->nickname->hasAcceptableInput()) {
- NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::USERNAME_NOT_VALID);
- 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) {
- return;
- } else if (member->IsConnected()) {
- // And ask if they want to leave the room if they are already in one.
- if (!NetworkMessage::WarnDisconnect()) {
- return;
- }
- }
- }
- if (!ui->ip->hasAcceptableInput()) {
- NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::IP_ADDRESS_NOT_VALID);
- return;
- }
- if (!ui->port->hasAcceptableInput()) {
- NetworkMessage::ErrorManager::ShowError(NetworkMessage::ErrorManager::PORT_NOT_VALID);
- return;
- }
-
- // Store settings
- UISettings::values.multiplayer_nickname = ui->nickname->text().toStdString();
- UISettings::values.multiplayer_ip = ui->ip->text().toStdString();
- if (!ui->port->text().isEmpty()) {
- UISettings::values.multiplayer_port = ui->port->text().toInt();
- } else {
- UISettings::values.multiplayer_port = UISettings::values.multiplayer_port.GetDefault();
- }
-
- emit SaveConfig();
-
- // attempt to connect in a different thread
- QFuture<void> f = QtConcurrent::run([&] {
- if (auto room_member = room_network.GetRoomMember().lock()) {
- auto port = UISettings::values.multiplayer_port.GetValue();
- room_member->Join(ui->nickname->text().toStdString(),
- ui->ip->text().toStdString().c_str(), port, 0, Network::NoPreferredIP,
- ui->password->text().toStdString().c_str());
- }
- });
- watcher->setFuture(f);
- // and disable widgets and display a connecting while we wait
- BeginConnecting();
-}
-
-void DirectConnectWindow::BeginConnecting() {
- ui->connect->setEnabled(false);
- ui->connect->setText(tr("Connecting"));
-}
-
-void DirectConnectWindow::EndConnecting() {
- ui->connect->setEnabled(true);
- ui->connect->setText(tr("Connect"));
-}
-
-void DirectConnectWindow::OnConnection() {
- EndConnecting();
-
- if (auto room_member = room_network.GetRoomMember().lock()) {
- if (room_member->IsConnected()) {
- close();
- }
- }
-}