summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/configuration')
-rw-r--r--src/yuzu/configuration/config.cpp79
-rw-r--r--src/yuzu/configuration/config.h2
-rw-r--r--src/yuzu/configuration/configure_dialog.cpp8
-rw-r--r--src/yuzu/configuration/configure_dialog.h3
-rw-r--r--src/yuzu/configuration/configure_network.cpp2
-rw-r--r--src/yuzu/configuration/configure_web.cpp5
-rw-r--r--src/yuzu/configuration/configure_web.h1
-rw-r--r--src/yuzu/configuration/configure_web.ui10
8 files changed, 105 insertions, 5 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index c841843f0..7c11e2c03 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -11,6 +11,7 @@
#include "core/hle/service/acc/profile_manager.h"
#include "core/hle/service/hid/controllers/npad.h"
#include "input_common/main.h"
+#include "network/network.h"
#include "yuzu/configuration/config.h"
namespace FS = Common::FS;
@@ -584,6 +585,48 @@ void Config::ReadMiscellaneousValues() {
qt_config->endGroup();
}
+void Config::ReadMultiplayerValues() {
+ qt_config->beginGroup(QStringLiteral("Multiplayer"));
+
+ UISettings::values.nickname = ReadSetting(QStringLiteral("nickname"), QString{}).toString();
+ UISettings::values.ip = ReadSetting(QStringLiteral("ip"), QString{}).toString();
+ UISettings::values.port =
+ ReadSetting(QStringLiteral("port"), Network::DefaultRoomPort).toString();
+ UISettings::values.room_nickname =
+ ReadSetting(QStringLiteral("room_nickname"), QString{}).toString();
+ UISettings::values.room_name = ReadSetting(QStringLiteral("room_name"), QString{}).toString();
+ UISettings::values.room_port =
+ ReadSetting(QStringLiteral("room_port"), QStringLiteral("24872")).toString();
+ bool ok;
+ UISettings::values.host_type = ReadSetting(QStringLiteral("host_type"), 0).toUInt(&ok);
+ if (!ok) {
+ UISettings::values.host_type = 0;
+ }
+ UISettings::values.max_player = ReadSetting(QStringLiteral("max_player"), 8).toUInt();
+ UISettings::values.game_id = ReadSetting(QStringLiteral("game_id"), 0).toULongLong();
+ UISettings::values.room_description =
+ ReadSetting(QStringLiteral("room_description"), QString{}).toString();
+ // Read ban list back
+ int size = qt_config->beginReadArray(QStringLiteral("username_ban_list"));
+ UISettings::values.ban_list.first.resize(size);
+ for (int i = 0; i < size; ++i) {
+ qt_config->setArrayIndex(i);
+ UISettings::values.ban_list.first[i] =
+ ReadSetting(QStringLiteral("username")).toString().toStdString();
+ }
+ qt_config->endArray();
+ size = qt_config->beginReadArray(QStringLiteral("ip_ban_list"));
+ UISettings::values.ban_list.second.resize(size);
+ for (int i = 0; i < size; ++i) {
+ qt_config->setArrayIndex(i);
+ UISettings::values.ban_list.second[i] =
+ ReadSetting(QStringLiteral("ip")).toString().toStdString();
+ }
+ qt_config->endArray();
+
+ qt_config->endGroup();
+}
+
void Config::ReadPathValues() {
qt_config->beginGroup(QStringLiteral("Paths"));
@@ -794,6 +837,7 @@ void Config::ReadUIValues() {
ReadPathValues();
ReadScreenshotValues();
ReadShortcutValues();
+ ReadMultiplayerValues();
ReadBasicSetting(UISettings::values.single_window_mode);
ReadBasicSetting(UISettings::values.fullscreen);
@@ -1161,6 +1205,40 @@ void Config::SaveMiscellaneousValues() {
qt_config->endGroup();
}
+void Config::SaveMultiplayerValues() {
+ qt_config->beginGroup(QStringLiteral("Multiplayer"));
+
+ WriteSetting(QStringLiteral("nickname"), UISettings::values.nickname, QString{});
+ WriteSetting(QStringLiteral("ip"), UISettings::values.ip, QString{});
+ WriteSetting(QStringLiteral("port"), UISettings::values.port, Network::DefaultRoomPort);
+ WriteSetting(QStringLiteral("room_nickname"), UISettings::values.room_nickname, QString{});
+ WriteSetting(QStringLiteral("room_name"), UISettings::values.room_name, QString{});
+ WriteSetting(QStringLiteral("room_port"), UISettings::values.room_port,
+ QStringLiteral("24872"));
+ WriteSetting(QStringLiteral("host_type"), UISettings::values.host_type, 0);
+ WriteSetting(QStringLiteral("max_player"), UISettings::values.max_player, 8);
+ WriteSetting(QStringLiteral("game_id"), UISettings::values.game_id, 0);
+ WriteSetting(QStringLiteral("room_description"), UISettings::values.room_description,
+ QString{});
+ // Write ban list
+ qt_config->beginWriteArray(QStringLiteral("username_ban_list"));
+ for (std::size_t i = 0; i < UISettings::values.ban_list.first.size(); ++i) {
+ qt_config->setArrayIndex(static_cast<int>(i));
+ WriteSetting(QStringLiteral("username"),
+ QString::fromStdString(UISettings::values.ban_list.first[i]));
+ }
+ qt_config->endArray();
+ qt_config->beginWriteArray(QStringLiteral("ip_ban_list"));
+ for (std::size_t i = 0; i < UISettings::values.ban_list.second.size(); ++i) {
+ qt_config->setArrayIndex(static_cast<int>(i));
+ WriteSetting(QStringLiteral("ip"),
+ QString::fromStdString(UISettings::values.ban_list.second[i]));
+ }
+ qt_config->endArray();
+
+ qt_config->endGroup();
+}
+
void Config::SavePathValues() {
qt_config->beginGroup(QStringLiteral("Paths"));
@@ -1347,6 +1425,7 @@ void Config::SaveUIValues() {
SavePathValues();
SaveScreenshotValues();
SaveShortcutValues();
+ SaveMultiplayerValues();
WriteBasicSetting(UISettings::values.single_window_mode);
WriteBasicSetting(UISettings::values.fullscreen);
diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h
index a71eabe8e..937b2d95b 100644
--- a/src/yuzu/configuration/config.h
+++ b/src/yuzu/configuration/config.h
@@ -89,6 +89,7 @@ private:
void ReadUIGamelistValues();
void ReadUILayoutValues();
void ReadWebServiceValues();
+ void ReadMultiplayerValues();
void SaveValues();
void SavePlayerValue(std::size_t player_index);
@@ -118,6 +119,7 @@ private:
void SaveUIGamelistValues();
void SaveUILayoutValues();
void SaveWebServiceValues();
+ void SaveMultiplayerValues();
/**
* Reads a setting from the qt_config.
diff --git a/src/yuzu/configuration/configure_dialog.cpp b/src/yuzu/configuration/configure_dialog.cpp
index e99657bd6..92ef4467b 100644
--- a/src/yuzu/configuration/configure_dialog.cpp
+++ b/src/yuzu/configuration/configure_dialog.cpp
@@ -29,9 +29,10 @@
ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_,
InputCommon::InputSubsystem* input_subsystem,
- Core::System& system_)
- : QDialog(parent), ui{std::make_unique<Ui::ConfigureDialog>()}, registry{registry_},
- system{system_}, audio_tab{std::make_unique<ConfigureAudio>(system_, this)},
+ Core::System& system_, bool enable_web_config)
+ : QDialog(parent), ui{std::make_unique<Ui::ConfigureDialog>()},
+ registry(registry_), system{system_}, audio_tab{std::make_unique<ConfigureAudio>(system_,
+ this)},
cpu_tab{std::make_unique<ConfigureCpu>(system_, this)},
debug_tab_tab{std::make_unique<ConfigureDebugTab>(system_, this)},
filesystem_tab{std::make_unique<ConfigureFilesystem>(this)},
@@ -64,6 +65,7 @@ ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_,
ui->tabWidget->addTab(ui_tab.get(), tr("Game List"));
ui->tabWidget->addTab(web_tab.get(), tr("Web"));
+ web_tab->SetWebServiceConfigEnabled(enable_web_config);
hotkeys_tab->Populate(registry);
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
diff --git a/src/yuzu/configuration/configure_dialog.h b/src/yuzu/configuration/configure_dialog.h
index 12cf25daf..cec1610ad 100644
--- a/src/yuzu/configuration/configure_dialog.h
+++ b/src/yuzu/configuration/configure_dialog.h
@@ -41,7 +41,8 @@ class ConfigureDialog : public QDialog {
public:
explicit ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_,
- InputCommon::InputSubsystem* input_subsystem, Core::System& system_);
+ InputCommon::InputSubsystem* input_subsystem, Core::System& system_,
+ bool enable_web_config = true);
~ConfigureDialog() override;
void ApplyConfiguration();
diff --git a/src/yuzu/configuration/configure_network.cpp b/src/yuzu/configuration/configure_network.cpp
index 8ed08fa6a..ba1986eb1 100644
--- a/src/yuzu/configuration/configure_network.cpp
+++ b/src/yuzu/configuration/configure_network.cpp
@@ -4,7 +4,7 @@
#include <QtConcurrent/QtConcurrent>
#include "common/settings.h"
#include "core/core.h"
-#include "core/network/network_interface.h"
+#include "core/internal_network/network_interface.h"
#include "ui_configure_network.h"
#include "yuzu/configuration/configure_network.h"
diff --git a/src/yuzu/configuration/configure_web.cpp b/src/yuzu/configuration/configure_web.cpp
index d779251b4..ff4bf44f4 100644
--- a/src/yuzu/configuration/configure_web.cpp
+++ b/src/yuzu/configuration/configure_web.cpp
@@ -169,3 +169,8 @@ void ConfigureWeb::OnLoginVerified() {
"correctly, and that your internet connection is working."));
}
}
+
+void ConfigureWeb::SetWebServiceConfigEnabled(bool enabled) {
+ ui->label_disable_info->setVisible(!enabled);
+ ui->groupBoxWebConfig->setEnabled(enabled);
+}
diff --git a/src/yuzu/configuration/configure_web.h b/src/yuzu/configuration/configure_web.h
index 9054711ea..041b51149 100644
--- a/src/yuzu/configuration/configure_web.h
+++ b/src/yuzu/configuration/configure_web.h
@@ -20,6 +20,7 @@ public:
~ConfigureWeb() override;
void ApplyConfiguration();
+ void SetWebServiceConfigEnabled(bool enabled);
private:
void changeEvent(QEvent* event) override;
diff --git a/src/yuzu/configuration/configure_web.ui b/src/yuzu/configuration/configure_web.ui
index 35b4274b0..3ac3864be 100644
--- a/src/yuzu/configuration/configure_web.ui
+++ b/src/yuzu/configuration/configure_web.ui
@@ -113,6 +113,16 @@
</widget>
</item>
<item>
+ <widget class="QLabel" name="label_disable_info">
+ <property name="text">
+ <string>Web Service configuration can only be changed when a public room isn't being hosted.</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Telemetry</string>