diff options
Diffstat (limited to 'src/citron/configuration/configure_network.cpp')
-rw-r--r-- | src/citron/configuration/configure_network.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/citron/configuration/configure_network.cpp b/src/citron/configuration/configure_network.cpp new file mode 100644 index 000000000..ba1986eb1 --- /dev/null +++ b/src/citron/configuration/configure_network.cpp @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include <QtConcurrent/QtConcurrent> +#include "common/settings.h" +#include "core/core.h" +#include "core/internal_network/network_interface.h" +#include "ui_configure_network.h" +#include "yuzu/configuration/configure_network.h" + +ConfigureNetwork::ConfigureNetwork(const Core::System& system_, QWidget* parent) + : QWidget(parent), ui(std::make_unique<Ui::ConfigureNetwork>()), system{system_} { + ui->setupUi(this); + + ui->network_interface->addItem(tr("None")); + for (const auto& iface : Network::GetAvailableNetworkInterfaces()) { + ui->network_interface->addItem(QString::fromStdString(iface.name)); + } + + this->SetConfiguration(); +} + +ConfigureNetwork::~ConfigureNetwork() = default; + +void ConfigureNetwork::ApplyConfiguration() { + Settings::values.network_interface = ui->network_interface->currentText().toStdString(); +} + +void ConfigureNetwork::changeEvent(QEvent* event) { + if (event->type() == QEvent::LanguageChange) { + RetranslateUI(); + } + + QWidget::changeEvent(event); +} + +void ConfigureNetwork::RetranslateUI() { + ui->retranslateUi(this); +} + +void ConfigureNetwork::SetConfiguration() { + const bool runtime_lock = !system.IsPoweredOn(); + + const std::string& network_interface = Settings::values.network_interface.GetValue(); + + ui->network_interface->setCurrentText(QString::fromStdString(network_interface)); + ui->network_interface->setEnabled(runtime_lock); +} |