diff options
author | James Rowe <jroweboy@gmail.com> | 2018-01-11 19:21:20 -0700 |
---|---|---|
committer | James Rowe <jroweboy@gmail.com> | 2018-01-12 19:11:03 -0700 |
commit | ebf9a784a9f7f4148a669dbb39e7cd50df779a14 (patch) | |
tree | d585685a1c0a34b903af1d086d62560bf56bb29f /src/citra_qt/configuration | |
parent | 890bbc0cd3ab070f8e1ef32806fe51ab20dd8579 (diff) |
Massive removal of unused modules
Diffstat (limited to 'src/citra_qt/configuration')
26 files changed, 0 insertions, 3111 deletions
diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp deleted file mode 100644 index fd884db7a..000000000 --- a/src/citra_qt/configuration/config.cpp +++ /dev/null @@ -1,326 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <QSettings> -#include "citra_qt/configuration/config.h" -#include "citra_qt/ui_settings.h" -#include "common/file_util.h" -#include "input_common/main.h" - -Config::Config() { - // TODO: Don't hardcode the path; let the frontend decide where to put the config files. - qt_config_loc = FileUtil::GetUserPath(D_CONFIG_IDX) + "qt-config.ini"; - FileUtil::CreateFullPath(qt_config_loc); - qt_config = new QSettings(QString::fromStdString(qt_config_loc), QSettings::IniFormat); - - Reload(); -} - -const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { - Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_T, Qt::Key_G, Qt::Key_F, Qt::Key_H, - Qt::Key_Q, Qt::Key_W, Qt::Key_M, Qt::Key_N, Qt::Key_1, Qt::Key_2, Qt::Key_B, -}; - -const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ - { - Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right, Qt::Key_D, - }, - { - Qt::Key_I, Qt::Key_K, Qt::Key_J, Qt::Key_L, Qt::Key_D, - }, -}}; - -void Config::ReadValues() { - qt_config->beginGroup("Controls"); - for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) { - std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]); - Settings::values.buttons[i] = - qt_config - ->value(Settings::NativeButton::mapping[i], QString::fromStdString(default_param)) - .toString() - .toStdString(); - if (Settings::values.buttons[i].empty()) - Settings::values.buttons[i] = default_param; - } - - for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) { - std::string default_param = InputCommon::GenerateAnalogParamFromKeys( - default_analogs[i][0], default_analogs[i][1], default_analogs[i][2], - default_analogs[i][3], default_analogs[i][4], 0.5f); - Settings::values.analogs[i] = - qt_config - ->value(Settings::NativeAnalog::mapping[i], QString::fromStdString(default_param)) - .toString() - .toStdString(); - if (Settings::values.analogs[i].empty()) - Settings::values.analogs[i] = default_param; - } - - Settings::values.motion_device = - qt_config->value("motion_device", "engine:motion_emu,update_period:100,sensitivity:0.01") - .toString() - .toStdString(); - Settings::values.touch_device = - qt_config->value("touch_device", "engine:emu_window").toString().toStdString(); - - qt_config->endGroup(); - - qt_config->beginGroup("Core"); - Settings::values.cpu_core = - static_cast<Settings::CpuCore>(qt_config->value("cpu_core", 0).toInt()); - qt_config->endGroup(); - - qt_config->beginGroup("Renderer"); - Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", true).toBool(); - Settings::values.use_shader_jit = qt_config->value("use_shader_jit", true).toBool(); - Settings::values.resolution_factor = qt_config->value("resolution_factor", 1.0).toFloat(); - Settings::values.use_vsync = qt_config->value("use_vsync", false).toBool(); - Settings::values.toggle_framelimit = qt_config->value("toggle_framelimit", true).toBool(); - - Settings::values.bg_red = qt_config->value("bg_red", 0.0).toFloat(); - Settings::values.bg_green = qt_config->value("bg_green", 0.0).toFloat(); - Settings::values.bg_blue = qt_config->value("bg_blue", 0.0).toFloat(); - qt_config->endGroup(); - - qt_config->beginGroup("Layout"); - Settings::values.layout_option = - static_cast<Settings::LayoutOption>(qt_config->value("layout_option").toInt()); - Settings::values.swap_screen = qt_config->value("swap_screen", false).toBool(); - Settings::values.custom_layout = qt_config->value("custom_layout", false).toBool(); - Settings::values.custom_top_left = qt_config->value("custom_top_left", 0).toInt(); - Settings::values.custom_top_top = qt_config->value("custom_top_top", 0).toInt(); - Settings::values.custom_top_right = qt_config->value("custom_top_right", 400).toInt(); - Settings::values.custom_top_bottom = qt_config->value("custom_top_bottom", 240).toInt(); - Settings::values.custom_bottom_left = qt_config->value("custom_bottom_left", 40).toInt(); - Settings::values.custom_bottom_top = qt_config->value("custom_bottom_top", 240).toInt(); - Settings::values.custom_bottom_right = qt_config->value("custom_bottom_right", 360).toInt(); - Settings::values.custom_bottom_bottom = qt_config->value("custom_bottom_bottom", 480).toInt(); - qt_config->endGroup(); - - qt_config->beginGroup("Audio"); - Settings::values.sink_id = qt_config->value("output_engine", "auto").toString().toStdString(); - Settings::values.enable_audio_stretching = - qt_config->value("enable_audio_stretching", true).toBool(); - Settings::values.audio_device_id = - qt_config->value("output_device", "auto").toString().toStdString(); - qt_config->endGroup(); - - qt_config->beginGroup("Data Storage"); - Settings::values.use_virtual_sd = qt_config->value("use_virtual_sd", true).toBool(); - qt_config->endGroup(); - - qt_config->beginGroup("System"); - Settings::values.is_new_3ds = qt_config->value("is_new_3ds", false).toBool(); - Settings::values.region_value = - qt_config->value("region_value", Settings::REGION_VALUE_AUTO_SELECT).toInt(); - qt_config->endGroup(); - - qt_config->beginGroup("Miscellaneous"); - Settings::values.log_filter = qt_config->value("log_filter", "*:Info").toString().toStdString(); - qt_config->endGroup(); - - qt_config->beginGroup("Debugging"); - Settings::values.use_gdbstub = qt_config->value("use_gdbstub", false).toBool(); - Settings::values.gdbstub_port = qt_config->value("gdbstub_port", 24689).toInt(); - qt_config->endGroup(); - - qt_config->beginGroup("WebService"); - Settings::values.enable_telemetry = qt_config->value("enable_telemetry", true).toBool(); - Settings::values.telemetry_endpoint_url = - qt_config->value("telemetry_endpoint_url", "https://services.citra-emu.org/api/telemetry") - .toString() - .toStdString(); - Settings::values.verify_endpoint_url = - qt_config->value("verify_endpoint_url", "https://services.citra-emu.org/api/profile") - .toString() - .toStdString(); - Settings::values.citra_username = qt_config->value("citra_username").toString().toStdString(); - Settings::values.citra_token = qt_config->value("citra_token").toString().toStdString(); - qt_config->endGroup(); - - qt_config->beginGroup("UI"); - UISettings::values.theme = qt_config->value("theme", UISettings::themes[0].second).toString(); - - qt_config->beginGroup("UILayout"); - UISettings::values.geometry = qt_config->value("geometry").toByteArray(); - UISettings::values.state = qt_config->value("state").toByteArray(); - UISettings::values.renderwindow_geometry = - qt_config->value("geometryRenderWindow").toByteArray(); - UISettings::values.gamelist_header_state = - qt_config->value("gameListHeaderState").toByteArray(); - UISettings::values.microprofile_geometry = - qt_config->value("microProfileDialogGeometry").toByteArray(); - UISettings::values.microprofile_visible = - qt_config->value("microProfileDialogVisible", false).toBool(); - qt_config->endGroup(); - - qt_config->beginGroup("Paths"); - UISettings::values.roms_path = qt_config->value("romsPath").toString(); - UISettings::values.symbols_path = qt_config->value("symbolsPath").toString(); - UISettings::values.gamedir = qt_config->value("gameListRootDir", ".").toString(); - UISettings::values.gamedir_deepscan = qt_config->value("gameListDeepScan", false).toBool(); - UISettings::values.recent_files = qt_config->value("recentFiles").toStringList(); - qt_config->endGroup(); - - qt_config->beginGroup("Shortcuts"); - QStringList groups = qt_config->childGroups(); - for (auto group : groups) { - qt_config->beginGroup(group); - - QStringList hotkeys = qt_config->childGroups(); - for (auto hotkey : hotkeys) { - qt_config->beginGroup(hotkey); - UISettings::values.shortcuts.emplace_back(UISettings::Shortcut( - group + "/" + hotkey, - UISettings::ContextualShortcut(qt_config->value("KeySeq").toString(), - qt_config->value("Context").toInt()))); - qt_config->endGroup(); - } - - qt_config->endGroup(); - } - qt_config->endGroup(); - - UISettings::values.single_window_mode = qt_config->value("singleWindowMode", true).toBool(); - UISettings::values.display_titlebar = qt_config->value("displayTitleBars", true).toBool(); - UISettings::values.show_filter_bar = qt_config->value("showFilterBar", true).toBool(); - UISettings::values.show_status_bar = qt_config->value("showStatusBar", true).toBool(); - UISettings::values.confirm_before_closing = qt_config->value("confirmClose", true).toBool(); - UISettings::values.first_start = qt_config->value("firstStart", true).toBool(); - UISettings::values.callout_flags = qt_config->value("calloutFlags", 0).toUInt(); - - qt_config->endGroup(); -} - -void Config::SaveValues() { - qt_config->beginGroup("Controls"); - for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) { - qt_config->setValue(QString::fromStdString(Settings::NativeButton::mapping[i]), - QString::fromStdString(Settings::values.buttons[i])); - } - for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) { - qt_config->setValue(QString::fromStdString(Settings::NativeAnalog::mapping[i]), - QString::fromStdString(Settings::values.analogs[i])); - } - qt_config->setValue("motion_device", QString::fromStdString(Settings::values.motion_device)); - qt_config->setValue("touch_device", QString::fromStdString(Settings::values.touch_device)); - qt_config->endGroup(); - - qt_config->beginGroup("Core"); - qt_config->setValue("cpu_core", static_cast<int>(Settings::values.cpu_core)); - qt_config->endGroup(); - - qt_config->beginGroup("Renderer"); - qt_config->setValue("use_hw_renderer", Settings::values.use_hw_renderer); - qt_config->setValue("use_shader_jit", Settings::values.use_shader_jit); - qt_config->setValue("resolution_factor", (double)Settings::values.resolution_factor); - qt_config->setValue("use_vsync", Settings::values.use_vsync); - qt_config->setValue("toggle_framelimit", Settings::values.toggle_framelimit); - - // Cast to double because Qt's written float values are not human-readable - qt_config->setValue("bg_red", (double)Settings::values.bg_red); - qt_config->setValue("bg_green", (double)Settings::values.bg_green); - qt_config->setValue("bg_blue", (double)Settings::values.bg_blue); - qt_config->endGroup(); - - qt_config->beginGroup("Layout"); - qt_config->setValue("layout_option", static_cast<int>(Settings::values.layout_option)); - qt_config->setValue("swap_screen", Settings::values.swap_screen); - qt_config->setValue("custom_layout", Settings::values.custom_layout); - qt_config->setValue("custom_top_left", Settings::values.custom_top_left); - qt_config->setValue("custom_top_top", Settings::values.custom_top_top); - qt_config->setValue("custom_top_right", Settings::values.custom_top_right); - qt_config->setValue("custom_top_bottom", Settings::values.custom_top_bottom); - qt_config->setValue("custom_bottom_left", Settings::values.custom_bottom_left); - qt_config->setValue("custom_bottom_top", Settings::values.custom_bottom_top); - qt_config->setValue("custom_bottom_right", Settings::values.custom_bottom_right); - qt_config->setValue("custom_bottom_bottom", Settings::values.custom_bottom_bottom); - qt_config->endGroup(); - - qt_config->beginGroup("Audio"); - qt_config->setValue("output_engine", QString::fromStdString(Settings::values.sink_id)); - qt_config->setValue("enable_audio_stretching", Settings::values.enable_audio_stretching); - qt_config->setValue("output_device", QString::fromStdString(Settings::values.audio_device_id)); - qt_config->endGroup(); - - qt_config->beginGroup("Data Storage"); - qt_config->setValue("use_virtual_sd", Settings::values.use_virtual_sd); - qt_config->endGroup(); - - qt_config->beginGroup("System"); - qt_config->setValue("is_new_3ds", Settings::values.is_new_3ds); - qt_config->setValue("region_value", Settings::values.region_value); - qt_config->endGroup(); - - qt_config->beginGroup("Miscellaneous"); - qt_config->setValue("log_filter", QString::fromStdString(Settings::values.log_filter)); - qt_config->endGroup(); - - qt_config->beginGroup("Debugging"); - qt_config->setValue("use_gdbstub", Settings::values.use_gdbstub); - qt_config->setValue("gdbstub_port", Settings::values.gdbstub_port); - qt_config->endGroup(); - - qt_config->beginGroup("WebService"); - qt_config->setValue("enable_telemetry", Settings::values.enable_telemetry); - qt_config->setValue("telemetry_endpoint_url", - QString::fromStdString(Settings::values.telemetry_endpoint_url)); - qt_config->setValue("verify_endpoint_url", - QString::fromStdString(Settings::values.verify_endpoint_url)); - qt_config->setValue("citra_username", QString::fromStdString(Settings::values.citra_username)); - qt_config->setValue("citra_token", QString::fromStdString(Settings::values.citra_token)); - qt_config->endGroup(); - - qt_config->beginGroup("UI"); - qt_config->setValue("theme", UISettings::values.theme); - - qt_config->beginGroup("UILayout"); - qt_config->setValue("geometry", UISettings::values.geometry); - qt_config->setValue("state", UISettings::values.state); - qt_config->setValue("geometryRenderWindow", UISettings::values.renderwindow_geometry); - qt_config->setValue("gameListHeaderState", UISettings::values.gamelist_header_state); - qt_config->setValue("microProfileDialogGeometry", UISettings::values.microprofile_geometry); - qt_config->setValue("microProfileDialogVisible", UISettings::values.microprofile_visible); - qt_config->endGroup(); - - qt_config->beginGroup("Paths"); - qt_config->setValue("romsPath", UISettings::values.roms_path); - qt_config->setValue("symbolsPath", UISettings::values.symbols_path); - qt_config->setValue("gameListRootDir", UISettings::values.gamedir); - qt_config->setValue("gameListDeepScan", UISettings::values.gamedir_deepscan); - qt_config->setValue("recentFiles", UISettings::values.recent_files); - qt_config->endGroup(); - - qt_config->beginGroup("Shortcuts"); - for (auto shortcut : UISettings::values.shortcuts) { - qt_config->setValue(shortcut.first + "/KeySeq", shortcut.second.first); - qt_config->setValue(shortcut.first + "/Context", shortcut.second.second); - } - qt_config->endGroup(); - - qt_config->setValue("singleWindowMode", UISettings::values.single_window_mode); - qt_config->setValue("displayTitleBars", UISettings::values.display_titlebar); - qt_config->setValue("showFilterBar", UISettings::values.show_filter_bar); - qt_config->setValue("showStatusBar", UISettings::values.show_status_bar); - qt_config->setValue("confirmClose", UISettings::values.confirm_before_closing); - qt_config->setValue("firstStart", UISettings::values.first_start); - qt_config->setValue("calloutFlags", UISettings::values.callout_flags); - - qt_config->endGroup(); -} - -void Config::Reload() { - ReadValues(); - Settings::Apply(); -} - -void Config::Save() { - SaveValues(); -} - -Config::~Config() { - Save(); - - delete qt_config; -} diff --git a/src/citra_qt/configuration/config.h b/src/citra_qt/configuration/config.h deleted file mode 100644 index cbf745ea2..000000000 --- a/src/citra_qt/configuration/config.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <array> -#include <string> -#include <QVariant> -#include "core/settings.h" - -class QSettings; - -class Config { - QSettings* qt_config; - std::string qt_config_loc; - - void ReadValues(); - void SaveValues(); - -public: - Config(); - ~Config(); - - void Reload(); - void Save(); - - static const std::array<int, Settings::NativeButton::NumButtons> default_buttons; - static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs; -}; diff --git a/src/citra_qt/configuration/configure.ui b/src/citra_qt/configuration/configure.ui deleted file mode 100644 index 6abd1917e..000000000 --- a/src/citra_qt/configuration/configure.ui +++ /dev/null @@ -1,147 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ConfigureDialog</class> - <widget class="QDialog" name="ConfigureDialog"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>740</width> - <height>500</height> - </rect> - </property> - <property name="windowTitle"> - <string>Citra Configuration</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QTabWidget" name="tabWidget"> - <property name="currentIndex"> - <number>0</number> - </property> - <widget class="ConfigureGeneral" name="generalTab"> - <attribute name="title"> - <string>General</string> - </attribute> - </widget> - <widget class="ConfigureSystem" name="systemTab"> - <attribute name="title"> - <string>System</string> - </attribute> - </widget> - <widget class="ConfigureInput" name="inputTab"> - <attribute name="title"> - <string>Input</string> - </attribute> - </widget> - <widget class="ConfigureGraphics" name="graphicsTab"> - <attribute name="title"> - <string>Graphics</string> - </attribute> - </widget> - <widget class="ConfigureAudio" name="audioTab"> - <attribute name="title"> - <string>Audio</string> - </attribute> - </widget> - <widget class="ConfigureDebug" name="debugTab"> - <attribute name="title"> - <string>Debug</string> - </attribute> - </widget> - <widget class="ConfigureWeb" name="webTab"> - <attribute name="title"> - <string>Web</string> - </attribute> - </widget> - </widget> - </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> - </property> - </widget> - </item> - </layout> - </widget> - <customwidgets> - <customwidget> - <class>ConfigureGeneral</class> - <extends>QWidget</extends> - <header>configuration/configure_general.h</header> - <container>1</container> - </customwidget> - <customwidget> - <class>ConfigureSystem</class> - <extends>QWidget</extends> - <header>configuration/configure_system.h</header> - <container>1</container> - </customwidget> - <customwidget> - <class>ConfigureAudio</class> - <extends>QWidget</extends> - <header>configuration/configure_audio.h</header> - <container>1</container> - </customwidget> - <customwidget> - <class>ConfigureDebug</class> - <extends>QWidget</extends> - <header>configuration/configure_debug.h</header> - <container>1</container> - </customwidget> - <customwidget> - <class>ConfigureInput</class> - <extends>QWidget</extends> - <header>configuration/configure_input.h</header> - <container>1</container> - </customwidget> - <customwidget> - <class>ConfigureGraphics</class> - <extends>QWidget</extends> - <header>configuration/configure_graphics.h</header> - <container>1</container> - </customwidget> - <customwidget> - <class>ConfigureWeb</class> - <extends>QWidget</extends> - <header>configuration/configure_web.h</header> - <container>1</container> - </customwidget> - </customwidgets> - <resources/> - <connections> - <connection> - <sender>buttonBox</sender> - <signal>accepted()</signal> - <receiver>ConfigureDialog</receiver> - <slot>accept()</slot> - <hints> - <hint type="sourcelabel"> - <x>220</x> - <y>380</y> - </hint> - <hint type="destinationlabel"> - <x>220</x> - <y>200</y> - </hint> - </hints> - </connection> - <connection> - <sender>buttonBox</sender> - <signal>rejected()</signal> - <receiver>ConfigureDialog</receiver> - <slot>reject()</slot> - <hints> - <hint type="sourcelabel"> - <x>220</x> - <y>380</y> - </hint> - <hint type="destinationlabel"> - <x>220</x> - <y>200</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/src/citra_qt/configuration/configure_audio.cpp b/src/citra_qt/configuration/configure_audio.cpp deleted file mode 100644 index 3fd1d127a..000000000 --- a/src/citra_qt/configuration/configure_audio.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <memory> -#include "audio_core/audio_core.h" -#include "audio_core/sink.h" -#include "audio_core/sink_details.h" -#include "citra_qt/configuration/configure_audio.h" -#include "core/settings.h" -#include "ui_configure_audio.h" - -ConfigureAudio::ConfigureAudio(QWidget* parent) - : QWidget(parent), ui(std::make_unique<Ui::ConfigureAudio>()) { - ui->setupUi(this); - - ui->output_sink_combo_box->clear(); - ui->output_sink_combo_box->addItem("auto"); - for (const auto& sink_detail : AudioCore::g_sink_details) { - ui->output_sink_combo_box->addItem(sink_detail.id); - } - - this->setConfiguration(); - connect(ui->output_sink_combo_box, SIGNAL(currentIndexChanged(int)), this, - SLOT(updateAudioDevices(int))); -} - -ConfigureAudio::~ConfigureAudio() {} - -void ConfigureAudio::setConfiguration() { - int new_sink_index = 0; - for (int index = 0; index < ui->output_sink_combo_box->count(); index++) { - if (ui->output_sink_combo_box->itemText(index).toStdString() == Settings::values.sink_id) { - new_sink_index = index; - break; - } - } - ui->output_sink_combo_box->setCurrentIndex(new_sink_index); - - ui->toggle_audio_stretching->setChecked(Settings::values.enable_audio_stretching); - - // The device list cannot be pre-populated (nor listed) until the output sink is known. - updateAudioDevices(new_sink_index); - - int new_device_index = -1; - for (int index = 0; index < ui->audio_device_combo_box->count(); index++) { - if (ui->audio_device_combo_box->itemText(index).toStdString() == - Settings::values.audio_device_id) { - new_device_index = index; - break; - } - } - ui->audio_device_combo_box->setCurrentIndex(new_device_index); -} - -void ConfigureAudio::applyConfiguration() { - Settings::values.sink_id = - ui->output_sink_combo_box->itemText(ui->output_sink_combo_box->currentIndex()) - .toStdString(); - Settings::values.enable_audio_stretching = ui->toggle_audio_stretching->isChecked(); - Settings::values.audio_device_id = - ui->audio_device_combo_box->itemText(ui->audio_device_combo_box->currentIndex()) - .toStdString(); - Settings::Apply(); -} - -void ConfigureAudio::updateAudioDevices(int sink_index) { - ui->audio_device_combo_box->clear(); - ui->audio_device_combo_box->addItem("auto"); - - std::string sink_id = ui->output_sink_combo_box->itemText(sink_index).toStdString(); - std::vector<std::string> device_list = - AudioCore::GetSinkDetails(sink_id).factory()->GetDeviceList(); - for (const auto& device : device_list) { - ui->audio_device_combo_box->addItem(device.c_str()); - } -} diff --git a/src/citra_qt/configuration/configure_audio.h b/src/citra_qt/configuration/configure_audio.h deleted file mode 100644 index 8190e694f..000000000 --- a/src/citra_qt/configuration/configure_audio.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <QWidget> - -namespace Ui { -class ConfigureAudio; -} - -class ConfigureAudio : public QWidget { - Q_OBJECT - -public: - explicit ConfigureAudio(QWidget* parent = nullptr); - ~ConfigureAudio(); - - void applyConfiguration(); - -public slots: - void updateAudioDevices(int sink_index); - -private: - void setConfiguration(); - - std::unique_ptr<Ui::ConfigureAudio> ui; -}; diff --git a/src/citra_qt/configuration/configure_audio.ui b/src/citra_qt/configuration/configure_audio.ui deleted file mode 100644 index dd870eb61..000000000 --- a/src/citra_qt/configuration/configure_audio.ui +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<ui version="4.0"> - <class>ConfigureAudio</class> - <widget class="QWidget" name="ConfigureAudio"> - <layout class="QVBoxLayout"> - <item> - <widget class="QGroupBox"> - <property name="title"> - <string>Audio</string> - </property> - <layout class="QVBoxLayout"> - <item> - <layout class="QHBoxLayout"> - <item> - <widget class="QLabel"> - <property name="text"> - <string>Output Engine:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="output_sink_combo_box"> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QCheckBox" name="toggle_audio_stretching"> - <property name="text"> - <string>Enable audio stretching</string> - </property> - <property name="toolTip"> - <string>This post-processing effect adjusts audio speed to match emulation speed and helps prevent audio stutter. This however increases audio latency.</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout"> - <item> - <widget class="QLabel"> - <property name="text"> - <string>Audio Device:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="audio_device_combo_box"> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <spacer> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <resources /> - <connections /> -</ui> diff --git a/src/citra_qt/configuration/configure_debug.cpp b/src/citra_qt/configuration/configure_debug.cpp deleted file mode 100644 index 263f73f38..000000000 --- a/src/citra_qt/configuration/configure_debug.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "citra_qt/configuration/configure_debug.h" -#include "core/settings.h" -#include "ui_configure_debug.h" - -ConfigureDebug::ConfigureDebug(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureDebug) { - ui->setupUi(this); - this->setConfiguration(); -} - -ConfigureDebug::~ConfigureDebug() {} - -void ConfigureDebug::setConfiguration() { - ui->toggle_gdbstub->setChecked(Settings::values.use_gdbstub); - ui->gdbport_spinbox->setEnabled(Settings::values.use_gdbstub); - ui->gdbport_spinbox->setValue(Settings::values.gdbstub_port); -} - -void ConfigureDebug::applyConfiguration() { - Settings::values.use_gdbstub = ui->toggle_gdbstub->isChecked(); - Settings::values.gdbstub_port = ui->gdbport_spinbox->value(); - Settings::Apply(); -} diff --git a/src/citra_qt/configuration/configure_debug.h b/src/citra_qt/configuration/configure_debug.h deleted file mode 100644 index d167eb996..000000000 --- a/src/citra_qt/configuration/configure_debug.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <QWidget> - -namespace Ui { -class ConfigureDebug; -} - -class ConfigureDebug : public QWidget { - Q_OBJECT - -public: - explicit ConfigureDebug(QWidget* parent = nullptr); - ~ConfigureDebug(); - - void applyConfiguration(); - -private: - void setConfiguration(); - -private: - std::unique_ptr<Ui::ConfigureDebug> ui; -}; diff --git a/src/citra_qt/configuration/configure_debug.ui b/src/citra_qt/configuration/configure_debug.ui deleted file mode 100644 index 96638ebdb..000000000 --- a/src/citra_qt/configuration/configure_debug.ui +++ /dev/null @@ -1,109 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ConfigureDebug</class> - <widget class="QWidget" name="ConfigureDebug"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>400</width> - <height>300</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>GDB</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QLabel"> - <property name="text"> - <string>The GDB Stub only works correctly when the CPU JIT is off.</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <widget class="QCheckBox" name="toggle_gdbstub"> - <property name="text"> - <string>Enable GDB Stub</string> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Port:</string> - </property> - </widget> - </item> - <item> - <widget class="QSpinBox" name="gdbport_spinbox"> - <property name="maximum"> - <number>65536</number> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>toggle_gdbstub</sender> - <signal>toggled(bool)</signal> - <receiver>gdbport_spinbox</receiver> - <slot>setEnabled(bool)</slot> - <hints> - <hint type="sourcelabel"> - <x>84</x> - <y>157</y> - </hint> - <hint type="destinationlabel"> - <x>342</x> - <y>158</y> - </hint> - </hints> - </connection> - </connections> -</ui> diff --git a/src/citra_qt/configuration/configure_dialog.cpp b/src/citra_qt/configuration/configure_dialog.cpp deleted file mode 100644 index b87dc0e6c..000000000 --- a/src/citra_qt/configuration/configure_dialog.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "citra_qt/configuration/config.h" -#include "citra_qt/configuration/configure_dialog.h" -#include "core/settings.h" -#include "ui_configure.h" - -ConfigureDialog::ConfigureDialog(QWidget* parent) : QDialog(parent), ui(new Ui::ConfigureDialog) { - ui->setupUi(this); - this->setConfiguration(); -} - -ConfigureDialog::~ConfigureDialog() {} - -void ConfigureDialog::setConfiguration() {} - -void ConfigureDialog::applyConfiguration() { - ui->generalTab->applyConfiguration(); - ui->systemTab->applyConfiguration(); - ui->inputTab->applyConfiguration(); - ui->graphicsTab->applyConfiguration(); - ui->audioTab->applyConfiguration(); - ui->debugTab->applyConfiguration(); - ui->webTab->applyConfiguration(); - Settings::Apply(); -} diff --git a/src/citra_qt/configuration/configure_dialog.h b/src/citra_qt/configuration/configure_dialog.h deleted file mode 100644 index 21fa1f501..000000000 --- a/src/citra_qt/configuration/configure_dialog.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <QDialog> - -namespace Ui { -class ConfigureDialog; -} - -class ConfigureDialog : public QDialog { - Q_OBJECT - -public: - explicit ConfigureDialog(QWidget* parent); - ~ConfigureDialog(); - - void applyConfiguration(); - -private: - void setConfiguration(); - -private: - std::unique_ptr<Ui::ConfigureDialog> ui; -}; diff --git a/src/citra_qt/configuration/configure_general.cpp b/src/citra_qt/configuration/configure_general.cpp deleted file mode 100644 index 0de27aa8b..000000000 --- a/src/citra_qt/configuration/configure_general.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "citra_qt/configuration/configure_general.h" -#include "citra_qt/ui_settings.h" -#include "core/core.h" -#include "core/settings.h" -#include "ui_configure_general.h" - -ConfigureGeneral::ConfigureGeneral(QWidget* parent) - : QWidget(parent), ui(new Ui::ConfigureGeneral) { - - ui->setupUi(this); - - for (auto theme : UISettings::themes) { - ui->theme_combobox->addItem(theme.first, theme.second); - } - - this->setConfiguration(); - - ui->cpu_core_combobox->setEnabled(!Core::System::GetInstance().IsPoweredOn()); -} - -ConfigureGeneral::~ConfigureGeneral() {} - -void ConfigureGeneral::setConfiguration() { - ui->toggle_deepscan->setChecked(UISettings::values.gamedir_deepscan); - ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing); - - // The first item is "auto-select" with actual value -1, so plus one here will do the trick - ui->region_combobox->setCurrentIndex(Settings::values.region_value + 1); - - ui->theme_combobox->setCurrentIndex(ui->theme_combobox->findData(UISettings::values.theme)); - ui->cpu_core_combobox->setCurrentIndex(static_cast<int>(Settings::values.cpu_core)); -} - -void ConfigureGeneral::applyConfiguration() { - UISettings::values.gamedir_deepscan = ui->toggle_deepscan->isChecked(); - UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked(); - UISettings::values.theme = - ui->theme_combobox->itemData(ui->theme_combobox->currentIndex()).toString(); - Settings::values.region_value = ui->region_combobox->currentIndex() - 1; - Settings::values.cpu_core = - static_cast<Settings::CpuCore>(ui->cpu_core_combobox->currentIndex()); - Settings::Apply(); -} diff --git a/src/citra_qt/configuration/configure_general.h b/src/citra_qt/configuration/configure_general.h deleted file mode 100644 index 447552d8c..000000000 --- a/src/citra_qt/configuration/configure_general.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <QWidget> - -namespace Ui { -class ConfigureGeneral; -} - -class ConfigureGeneral : public QWidget { - Q_OBJECT - -public: - explicit ConfigureGeneral(QWidget* parent = nullptr); - ~ConfigureGeneral(); - - void applyConfiguration(); - -private: - void setConfiguration(); - -private: - std::unique_ptr<Ui::ConfigureGeneral> ui; -}; diff --git a/src/citra_qt/configuration/configure_general.ui b/src/citra_qt/configuration/configure_general.ui deleted file mode 100644 index e88c37936..000000000 --- a/src/citra_qt/configuration/configure_general.ui +++ /dev/null @@ -1,199 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ConfigureGeneral</class> - <widget class="QWidget" name="ConfigureGeneral"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>300</width> - <height>377</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>General</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QCheckBox" name="toggle_deepscan"> - <property name="text"> - <string>Search sub-directories for games</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="toggle_check_exit"> - <property name="text"> - <string>Confirm exit while emulation is running</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_2"> - <property name="title"> - <string>CPU Core</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_7"> - <item> - <layout class="QVBoxLayout" name="verticalLayout_5"> - <item> - <widget class="QComboBox" name="cpu_core_combobox"> - <item> - <property name="text"> - <string>Unicorn</string> - </property> - </item> - <item> - <property name="text"> - <string>Dynarmic</string> - </property> - </item> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_4"> - <property name="title"> - <string>Emulation</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_5"> - <item> - <layout class="QVBoxLayout" name="verticalLayout_6"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_6"> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Region:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="region_combobox"> - <item> - <property name="text"> - <string>Auto-select</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">JPN</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">USA</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">EUR</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">AUS</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">CHN</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">KOR</string> - </property> - </item> - <item> - <property name="text"> - <string notr="true">TWN</string> - </property> - </item> - </widget> - </item> - </layout> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="theme_group_box"> - <property name="title"> - <string>Theme</string> - </property> - <layout class="QHBoxLayout" name="theme_qhbox_layout"> - <item> - <layout class="QVBoxLayout" name="theme_qvbox_layout"> - <item> - <layout class="QHBoxLayout" name="theme_qhbox_layout_2"> - <item> - <widget class="QLabel" name="theme_label"> - <property name="text"> - <string>Theme:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="theme_combobox"> - </widget> - </item> - </layout> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_3"> - <property name="title"> - <string>Hotkeys</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="GHotkeysDialog" name="widget" native="true"/> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <customwidgets> - <customwidget> - <class>GHotkeysDialog</class> - <extends>QWidget</extends> - <header>hotkeys.h</header> - <container>1</container> - </customwidget> - </customwidgets> - <resources/> - <connections/> -</ui> diff --git a/src/citra_qt/configuration/configure_graphics.cpp b/src/citra_qt/configuration/configure_graphics.cpp deleted file mode 100644 index b5a5ab1e1..000000000 --- a/src/citra_qt/configuration/configure_graphics.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "citra_qt/configuration/configure_graphics.h" -#include "core/core.h" -#include "core/settings.h" -#include "ui_configure_graphics.h" - -ConfigureGraphics::ConfigureGraphics(QWidget* parent) - : QWidget(parent), ui(new Ui::ConfigureGraphics) { - - ui->setupUi(this); - this->setConfiguration(); - - ui->toggle_vsync->setEnabled(!Core::System::GetInstance().IsPoweredOn()); - - ui->layoutBox->setEnabled(!Settings::values.custom_layout); -} - -ConfigureGraphics::~ConfigureGraphics() {} - -enum class Resolution : int { - Auto, - Scale1x, - Scale2x, - Scale3x, - Scale4x, - Scale5x, - Scale6x, - Scale7x, - Scale8x, - Scale9x, - Scale10x, -}; - -float ToResolutionFactor(Resolution option) { - switch (option) { - case Resolution::Auto: - return 0.f; - case Resolution::Scale1x: - return 1.f; - case Resolution::Scale2x: - return 2.f; - case Resolution::Scale3x: - return 3.f; - case Resolution::Scale4x: - return 4.f; - case Resolution::Scale5x: - return 5.f; - case Resolution::Scale6x: - return 6.f; - case Resolution::Scale7x: - return 7.f; - case Resolution::Scale8x: - return 8.f; - case Resolution::Scale9x: - return 9.f; - case Resolution::Scale10x: - return 10.f; - } - return 0.f; -} - -Resolution FromResolutionFactor(float factor) { - if (factor == 0.f) { - return Resolution::Auto; - } else if (factor == 1.f) { - return Resolution::Scale1x; - } else if (factor == 2.f) { - return Resolution::Scale2x; - } else if (factor == 3.f) { - return Resolution::Scale3x; - } else if (factor == 4.f) { - return Resolution::Scale4x; - } else if (factor == 5.f) { - return Resolution::Scale5x; - } else if (factor == 6.f) { - return Resolution::Scale6x; - } else if (factor == 7.f) { - return Resolution::Scale7x; - } else if (factor == 8.f) { - return Resolution::Scale8x; - } else if (factor == 9.f) { - return Resolution::Scale9x; - } else if (factor == 10.f) { - return Resolution::Scale10x; - } - return Resolution::Auto; -} - -void ConfigureGraphics::setConfiguration() { - ui->toggle_hw_renderer->setChecked(Settings::values.use_hw_renderer); - ui->resolution_factor_combobox->setEnabled(Settings::values.use_hw_renderer); - ui->toggle_shader_jit->setChecked(Settings::values.use_shader_jit); - ui->resolution_factor_combobox->setCurrentIndex( - static_cast<int>(FromResolutionFactor(Settings::values.resolution_factor))); - ui->toggle_vsync->setChecked(Settings::values.use_vsync); - ui->toggle_framelimit->setChecked(Settings::values.toggle_framelimit); - ui->layout_combobox->setCurrentIndex(static_cast<int>(Settings::values.layout_option)); - ui->swap_screen->setChecked(Settings::values.swap_screen); -} - -void ConfigureGraphics::applyConfiguration() { - Settings::values.use_hw_renderer = ui->toggle_hw_renderer->isChecked(); - Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked(); - Settings::values.resolution_factor = - ToResolutionFactor(static_cast<Resolution>(ui->resolution_factor_combobox->currentIndex())); - Settings::values.use_vsync = ui->toggle_vsync->isChecked(); - Settings::values.toggle_framelimit = ui->toggle_framelimit->isChecked(); - Settings::values.layout_option = - static_cast<Settings::LayoutOption>(ui->layout_combobox->currentIndex()); - Settings::values.swap_screen = ui->swap_screen->isChecked(); - Settings::Apply(); -} diff --git a/src/citra_qt/configuration/configure_graphics.h b/src/citra_qt/configuration/configure_graphics.h deleted file mode 100644 index 5497a55f7..000000000 --- a/src/citra_qt/configuration/configure_graphics.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <QWidget> - -namespace Ui { -class ConfigureGraphics; -} - -class ConfigureGraphics : public QWidget { - Q_OBJECT - -public: - explicit ConfigureGraphics(QWidget* parent = nullptr); - ~ConfigureGraphics(); - - void applyConfiguration(); - -private: - void setConfiguration(); - -private: - std::unique_ptr<Ui::ConfigureGraphics> ui; -}; diff --git a/src/citra_qt/configuration/configure_graphics.ui b/src/citra_qt/configuration/configure_graphics.ui deleted file mode 100644 index 5667b14b6..000000000 --- a/src/citra_qt/configuration/configure_graphics.ui +++ /dev/null @@ -1,207 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ConfigureGraphics</class> - <widget class="QWidget" name="ConfigureGraphics"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>400</width> - <height>300</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>Graphics</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QCheckBox" name="toggle_hw_renderer"> - <property name="text"> - <string>Enable hardware renderer</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="toggle_shader_jit"> - <property name="text"> - <string>Enable shader JIT</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="toggle_vsync"> - <property name="text"> - <string>Enable V-Sync</string> - </property> - </widget> - </item> - <item> - <widget class="QCheckBox" name="toggle_framelimit"> - <property name="text"> - <string>Limit framerate</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Internal Resolution:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="resolution_factor_combobox"> - <item> - <property name="text"> - <string>Auto (Window Size)</string> - </property> - </item> - <item> - <property name="text"> - <string>Native (400x240)</string> - </property> - </item> - <item> - <property name="text"> - <string>2x Native (800x480)</string> - </property> - </item> - <item> - <property name="text"> - <string>3x Native (1200x720)</string> - </property> - </item> - <item> - <property name="text"> - <string>4x Native (1600x960)</string> - </property> - </item> - <item> - <property name="text"> - <string>5x Native (2000x1200)</string> - </property> - </item> - <item> - <property name="text"> - <string>6x Native (2400x1440)</string> - </property> - </item> - <item> - <property name="text"> - <string>7x Native (2800x1680)</string> - </property> - </item> - <item> - <property name="text"> - <string>8x Native (3200x1920)</string> - </property> - </item> - <item> - <property name="text"> - <string>9x Native (3600x2160)</string> - </property> - </item> - <item> - <property name="text"> - <string>10x Native (4000x2400)</string> - </property> - </item> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QGroupBox" name="layoutBox"> - <property name="title"> - <string>Layout</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <item> - <widget class="QLabel" name="label1"> - <property name="text"> - <string>Screen Layout:</string> - </property> - </widget> - </item> - <item> - <widget class="QComboBox" name="layout_combobox"> - <item> - <property name="text"> - <string>Default</string> - </property> - </item> - <item> - <property name="text"> - <string>Single Screen</string> - </property> - </item> - <item> - <property name="text"> - <string>Large Screen</string> - </property> - </item> - <item> - <property name="text"> - <string>Side by Side</string> - </property> - </item> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QCheckBox" name="swap_screen"> - <property name="text"> - <string>Swap Screens</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <resources/> - <connections> - <connection> - <sender>toggle_hw_renderer</sender> - <signal>toggled(bool)</signal> - <receiver>resolution_factor_combobox</receiver> - <slot>setEnabled(bool)</slot> - </connection> - </connections> -</ui> diff --git a/src/citra_qt/configuration/configure_input.cpp b/src/citra_qt/configuration/configure_input.cpp deleted file mode 100644 index 116a6330f..000000000 --- a/src/citra_qt/configuration/configure_input.cpp +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <algorithm> -#include <memory> -#include <utility> -#include <QTimer> -#include "citra_qt/configuration/config.h" -#include "citra_qt/configuration/configure_input.h" -#include "common/param_package.h" -#include "input_common/main.h" - -const std::array<std::string, ConfigureInput::ANALOG_SUB_BUTTONS_NUM> - ConfigureInput::analog_sub_buttons{{ - "up", "down", "left", "right", "modifier", - }}; - -static QString getKeyName(int key_code) { - switch (key_code) { - case Qt::Key_Shift: - return QObject::tr("Shift"); - case Qt::Key_Control: - return QObject::tr("Ctrl"); - case Qt::Key_Alt: - return QObject::tr("Alt"); - case Qt::Key_Meta: - return ""; - default: - return QKeySequence(key_code).toString(); - } -} - -static void SetButtonKey(int key, Common::ParamPackage& button_param) { - button_param = Common::ParamPackage{InputCommon::GenerateKeyboardParam(key)}; -} - -static void SetAnalogKey(int key, Common::ParamPackage& analog_param, - const std::string& button_name) { - if (analog_param.Get("engine", "") != "analog_from_button") { - analog_param = { - {"engine", "analog_from_button"}, {"modifier_scale", "0.5"}, - }; - } - analog_param.Set(button_name, InputCommon::GenerateKeyboardParam(key)); -} - -ConfigureInput::ConfigureInput(QWidget* parent) - : QWidget(parent), ui(std::make_unique<Ui::ConfigureInput>()), - timer(std::make_unique<QTimer>()) { - - ui->setupUi(this); - setFocusPolicy(Qt::ClickFocus); - - button_map = { - ui->buttonA, ui->buttonB, ui->buttonX, ui->buttonY, ui->buttonDpadUp, - ui->buttonDpadDown, ui->buttonDpadLeft, ui->buttonDpadRight, ui->buttonL, ui->buttonR, - ui->buttonStart, ui->buttonSelect, ui->buttonZL, ui->buttonZR, ui->buttonHome, - }; - - analog_map = {{ - { - ui->buttonCircleUp, ui->buttonCircleDown, ui->buttonCircleLeft, ui->buttonCircleRight, - ui->buttonCircleMod, - }, - { - ui->buttonCStickUp, ui->buttonCStickDown, ui->buttonCStickLeft, ui->buttonCStickRight, - nullptr, - }, - }}; - - for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; button_id++) { - if (button_map[button_id]) - connect(button_map[button_id], &QPushButton::released, [=]() { - handleClick(button_map[button_id], - [=](int key) { SetButtonKey(key, buttons_param[button_id]); }); - }); - } - - for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { - for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) { - if (analog_map[analog_id][sub_button_id] != nullptr) { - connect(analog_map[analog_id][sub_button_id], &QPushButton::released, [=]() { - handleClick(analog_map[analog_id][sub_button_id], [=](int key) { - SetAnalogKey(key, analogs_param[analog_id], - analog_sub_buttons[sub_button_id]); - }); - }); - } - } - } - - connect(ui->buttonRestoreDefaults, &QPushButton::released, [this]() { restoreDefaults(); }); - - timer->setSingleShot(true); - connect(timer.get(), &QTimer::timeout, [this]() { - releaseKeyboard(); - releaseMouse(); - key_setter = boost::none; - updateButtonLabels(); - }); - - this->loadConfiguration(); - - // TODO(wwylele): enable this when we actually emulate it - ui->buttonHome->setEnabled(false); -} - -void ConfigureInput::applyConfiguration() { - std::transform(buttons_param.begin(), buttons_param.end(), Settings::values.buttons.begin(), - [](const Common::ParamPackage& param) { return param.Serialize(); }); - std::transform(analogs_param.begin(), analogs_param.end(), Settings::values.analogs.begin(), - [](const Common::ParamPackage& param) { return param.Serialize(); }); - - Settings::Apply(); -} - -void ConfigureInput::loadConfiguration() { - std::transform(Settings::values.buttons.begin(), Settings::values.buttons.end(), - buttons_param.begin(), - [](const std::string& str) { return Common::ParamPackage(str); }); - std::transform(Settings::values.analogs.begin(), Settings::values.analogs.end(), - analogs_param.begin(), - [](const std::string& str) { return Common::ParamPackage(str); }); - updateButtonLabels(); -} - -void ConfigureInput::restoreDefaults() { - for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; button_id++) { - SetButtonKey(Config::default_buttons[button_id], buttons_param[button_id]); - } - - for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { - for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) { - SetAnalogKey(Config::default_analogs[analog_id][sub_button_id], - analogs_param[analog_id], analog_sub_buttons[sub_button_id]); - } - } - updateButtonLabels(); - applyConfiguration(); -} - -void ConfigureInput::updateButtonLabels() { - QString non_keyboard(tr("[non-keyboard]")); - - auto KeyToText = [&non_keyboard](const Common::ParamPackage& param) { - if (param.Get("engine", "") != "keyboard") { - return non_keyboard; - } else { - return getKeyName(param.Get("code", 0)); - } - }; - - for (int button = 0; button < Settings::NativeButton::NumButtons; button++) { - button_map[button]->setText(KeyToText(buttons_param[button])); - } - - for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { - if (analogs_param[analog_id].Get("engine", "") != "analog_from_button") { - for (QPushButton* button : analog_map[analog_id]) { - if (button) - button->setText(non_keyboard); - } - } else { - for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) { - Common::ParamPackage param( - analogs_param[analog_id].Get(analog_sub_buttons[sub_button_id], "")); - if (analog_map[analog_id][sub_button_id]) - analog_map[analog_id][sub_button_id]->setText(KeyToText(param)); - } - } - } -} - -void ConfigureInput::handleClick(QPushButton* button, std::function<void(int)> new_key_setter) { - button->setText(tr("[press key]")); - button->setFocus(); - - key_setter = new_key_setter; - - grabKeyboard(); - grabMouse(); - timer->start(5000); // Cancel after 5 seconds -} - -void ConfigureInput::keyPressEvent(QKeyEvent* event) { - releaseKeyboard(); - releaseMouse(); - - if (!key_setter || !event) - return; - - if (event->key() != Qt::Key_Escape) - (*key_setter)(event->key()); - - updateButtonLabels(); - key_setter = boost::none; - timer->stop(); -} diff --git a/src/citra_qt/configuration/configure_input.h b/src/citra_qt/configuration/configure_input.h deleted file mode 100644 index c950fbcb4..000000000 --- a/src/citra_qt/configuration/configure_input.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <array> -#include <functional> -#include <memory> -#include <string> -#include <QKeyEvent> -#include <QWidget> -#include <boost/optional.hpp> -#include "common/param_package.h" -#include "core/settings.h" -#include "ui_configure_input.h" - -class QPushButton; -class QString; -class QTimer; - -namespace Ui { -class ConfigureInput; -} - -class ConfigureInput : public QWidget { - Q_OBJECT - -public: - explicit ConfigureInput(QWidget* parent = nullptr); - - /// Save all button configurations to settings file - void applyConfiguration(); - -private: - std::unique_ptr<Ui::ConfigureInput> ui; - - std::unique_ptr<QTimer> timer; - - /// This will be the the setting function when an input is awaiting configuration. - boost::optional<std::function<void(int)>> key_setter; - - std::array<Common::ParamPackage, Settings::NativeButton::NumButtons> buttons_param; - std::array<Common::ParamPackage, Settings::NativeAnalog::NumAnalogs> analogs_param; - - static constexpr int ANALOG_SUB_BUTTONS_NUM = 5; - - /// Each button input is represented by a QPushButton. - std::array<QPushButton*, Settings::NativeButton::NumButtons> button_map; - - /// Each analog input is represented by five QPushButtons which represents up, down, left, right - /// and modifier - std::array<std::array<QPushButton*, ANALOG_SUB_BUTTONS_NUM>, Settings::NativeAnalog::NumAnalogs> - analog_map; - - static const std::array<std::string, ANALOG_SUB_BUTTONS_NUM> analog_sub_buttons; - - /// Load configuration settings. - void loadConfiguration(); - /// Restore all buttons to their default values. - void restoreDefaults(); - /// Update UI to reflect current configuration. - void updateButtonLabels(); - - /// Called when the button was pressed. - void handleClick(QPushButton* button, std::function<void(int)> new_key_setter); - /// Handle key press events. - void keyPressEvent(QKeyEvent* event) override; -}; diff --git a/src/citra_qt/configuration/configure_input.ui b/src/citra_qt/configuration/configure_input.ui deleted file mode 100644 index 2760787e5..000000000 --- a/src/citra_qt/configuration/configure_input.ui +++ /dev/null @@ -1,592 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ConfigureInput</class> - <widget class="QWidget" name="ConfigureInput"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>370</width> - <height>534</height> - </rect> - </property> - <property name="windowTitle"> - <string>ConfigureInput</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_5"> - <item> - <layout class="QGridLayout" name="gridLayout_7"> - <item row="0" column="0"> - <widget class="QGroupBox" name="faceButtons"> - <property name="title"> - <string>Face Buttons</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>A:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonA"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>B:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonB"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>X:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonX"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="QLabel" name="label_4"> - <property name="text"> - <string>Y:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonY"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item row="0" column="1"> - <widget class="QGroupBox" name="faceButtons_2"> - <property name="title"> - <string>Directional Pad</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_2"> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_12"> - <item> - <widget class="QLabel" name="label_34"> - <property name="text"> - <string>Up:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonDpadUp"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_9"> - <item> - <widget class="QLabel" name="label_35"> - <property name="text"> - <string>Down:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonDpadDown"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_10"> - <item> - <widget class="QLabel" name="label_32"> - <property name="text"> - <string>Left:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonDpadLeft"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_11"> - <item> - <widget class="QLabel" name="label_33"> - <property name="text"> - <string>Right:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonDpadRight"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item row="1" column="0"> - <widget class="QGroupBox" name="faceButtons_3"> - <property name="title"> - <string>Shoulder Buttons</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_3"> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_13"> - <item> - <widget class="QLabel" name="label_17"> - <property name="text"> - <string>L:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonL"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_14"> - <item> - <widget class="QLabel" name="label_19"> - <property name="text"> - <string>R:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonR"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_15"> - <item> - <widget class="QLabel" name="label_20"> - <property name="text"> - <string>ZL:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonZL"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_16"> - <item> - <widget class="QLabel" name="label_18"> - <property name="text"> - <string>ZR:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonZR"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item row="1" column="1"> - <widget class="QGroupBox" name="faceButtons_4"> - <property name="title"> - <string>Circle Pad</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_4"> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_17"> - <item> - <widget class="QLabel" name="label_21"> - <property name="text"> - <string>Left:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCircleLeft"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_18"> - <item> - <widget class="QLabel" name="label_23"> - <property name="text"> - <string>Right:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCircleRight"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_19"> - <item> - <widget class="QLabel" name="label_24"> - <property name="text"> - <string>Up:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCircleUp"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_20"> - <item> - <widget class="QLabel" name="label_22"> - <property name="text"> - <string>Down:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCircleDown"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item row="2" column="0"> - <widget class="QGroupBox" name="faceButtons_5"> - <property name="title"> - <string>C-Stick</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_5"> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_21"> - <item> - <widget class="QLabel" name="label_25"> - <property name="text"> - <string>Left:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCStickLeft"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_22"> - <item> - <widget class="QLabel" name="label_27"> - <property name="text"> - <string>Right:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCStickRight"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_23"> - <item> - <widget class="QLabel" name="label_28"> - <property name="text"> - <string>Up:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCStickUp"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_24"> - <item> - <widget class="QLabel" name="label_26"> - <property name="text"> - <string>Down:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCStickDown"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item row="2" column="1"> - <widget class="QGroupBox" name="faceButtons_6"> - <property name="title"> - <string>Misc.</string> - </property> - <property name="flat"> - <bool>false</bool> - </property> - <property name="checkable"> - <bool>false</bool> - </property> - <layout class="QGridLayout" name="gridLayout_6"> - <item row="0" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_25"> - <item> - <widget class="QLabel" name="label_29"> - <property name="text"> - <string>Start:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonStart"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="0" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_26"> - <item> - <widget class="QLabel" name="label_30"> - <property name="text"> - <string>Select:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonSelect"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="0"> - <layout class="QVBoxLayout" name="verticalLayout_27"> - <item> - <widget class="QLabel" name="label_31"> - <property name="text"> - <string>Home:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonHome"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - <item row="1" column="1"> - <layout class="QVBoxLayout" name="verticalLayout_28"> - <item> - <widget class="QLabel" name="label_36"> - <property name="text"> - <string>Circle Mod:</string> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="buttonCircleMod"> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="buttonRestoreDefaults"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="sizeIncrement"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="baseSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="layoutDirection"> - <enum>Qt::LeftToRight</enum> - </property> - <property name="text"> - <string>Restore Defaults</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src/citra_qt/configuration/configure_system.cpp b/src/citra_qt/configuration/configure_system.cpp deleted file mode 100644 index d83c2db23..000000000 --- a/src/citra_qt/configuration/configure_system.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <QMessageBox> -#include "citra_qt/configuration/configure_system.h" -#include "citra_qt/ui_settings.h" -#include "core/core.h" -#include "ui_configure_system.h" - -static const std::array<int, 12> days_in_month = {{ - 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, -}}; - -ConfigureSystem::ConfigureSystem(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureSystem) { - ui->setupUi(this); - connect(ui->combo_birthmonth, - static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, - &ConfigureSystem::updateBirthdayComboBox); - connect(ui->button_regenerate_console_id, &QPushButton::clicked, this, - &ConfigureSystem::refreshConsoleID); - - this->setConfiguration(); -} - -ConfigureSystem::~ConfigureSystem() {} - -void ConfigureSystem::setConfiguration() { - enabled = !Core::System::GetInstance().IsPoweredOn(); -} - -void ConfigureSystem::ReadSystemSettings() { -} - -void ConfigureSystem::applyConfiguration() { - if (!enabled) - return; -} - -void ConfigureSystem::updateBirthdayComboBox(int birthmonth_index) { - if (birthmonth_index < 0 || birthmonth_index >= 12) - return; - - // store current day selection - int birthday_index = ui->combo_birthday->currentIndex(); - - // get number of days in the new selected month - int days = days_in_month[birthmonth_index]; - - // if the selected day is out of range, - // reset it to 1st - if (birthday_index < 0 || birthday_index >= days) - birthday_index = 0; - - // update the day combo box - ui->combo_birthday->clear(); - for (int i = 1; i <= days; ++i) { - ui->combo_birthday->addItem(QString::number(i)); - } - - // restore the day selection - ui->combo_birthday->setCurrentIndex(birthday_index); -} - -void ConfigureSystem::refreshConsoleID() { - QMessageBox::StandardButton reply; - QString warning_text = tr("This will replace your current virtual 3DS with a new one. " - "Your current virtual 3DS will not be recoverable. " - "This might have unexpected effects in games. This might fail, " - "if you use an outdated config savegame. Continue?"); - reply = QMessageBox::critical(this, tr("Warning"), warning_text, - QMessageBox::No | QMessageBox::Yes); - if (reply == QMessageBox::No) - return; - u64 console_id{}; - ui->label_console_id->setText("Console ID: 0x" + QString::number(console_id, 16).toUpper()); -} diff --git a/src/citra_qt/configuration/configure_system.h b/src/citra_qt/configuration/configure_system.h deleted file mode 100644 index f13de17d4..000000000 --- a/src/citra_qt/configuration/configure_system.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <QWidget> - -namespace Ui { -class ConfigureSystem; -} - -class ConfigureSystem : public QWidget { - Q_OBJECT - -public: - explicit ConfigureSystem(QWidget* parent = nullptr); - ~ConfigureSystem(); - - void applyConfiguration(); - void setConfiguration(); - -public slots: - void updateBirthdayComboBox(int birthmonth_index); - void refreshConsoleID(); - -private: - void ReadSystemSettings(); - - std::unique_ptr<Ui::ConfigureSystem> ui; - bool enabled; - - std::u16string username; - int birthmonth, birthday; - int language_index; - int sound_index; -}; diff --git a/src/citra_qt/configuration/configure_system.ui b/src/citra_qt/configuration/configure_system.ui deleted file mode 100644 index 8caf49623..000000000 --- a/src/citra_qt/configuration/configure_system.ui +++ /dev/null @@ -1,278 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ConfigureSystem</class> - <widget class="QWidget" name="ConfigureSystem"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>360</width> - <height>377</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <widget class="QGroupBox" name="group_system_settings"> - <property name="title"> - <string>System Settings</string> - </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> - <widget class="QLabel" name="label_username"> - <property name="text"> - <string>Username</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="edit_username"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="maxLength"> - <number>10</number> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_birthday"> - <property name="text"> - <string>Birthday</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_birthday2"> - <item> - <widget class="QComboBox" name="combo_birthmonth"> - <item> - <property name="text"> - <string>January</string> - </property> - </item> - <item> - <property name="text"> - <string>February</string> - </property> - </item> - <item> - <property name="text"> - <string>March</string> - </property> - </item> - <item> - <property name="text"> - <string>April</string> - </property> - </item> - <item> - <property name="text"> - <string>May</string> - </property> - </item> - <item> - <property name="text"> - <string>June</string> - </property> - </item> - <item> - <property name="text"> - <string>July</string> - </property> - </item> - <item> - <property name="text"> - <string>August</string> - </property> - </item> - <item> - <property name="text"> - <string>September</string> - </property> - </item> - <item> - <property name="text"> - <string>October</string> - </property> - </item> - <item> - <property name="text"> - <string>November</string> - </property> - </item> - <item> - <property name="text"> - <string>December</string> - </property> - </item> - </widget> - </item> - <item> - <widget class="QComboBox" name="combo_birthday"/> - </item> - </layout> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_language"> - <property name="text"> - <string>Language</string> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QComboBox" name="combo_language"> - <property name="toolTip"> - <string>Note: this can be overridden when region setting is auto-select</string> - </property> - <item> - <property name="text"> - <string>Japanese (日本語)</string> - </property> - </item> - <item> - <property name="text"> - <string>English</string> - </property> - </item> - <item> - <property name="text"> - <string>French (français)</string> - </property> - </item> - <item> - <property name="text"> - <string>German (Deutsch)</string> - </property> - </item> - <item> - <property name="text"> - <string>Italian (italiano)</string> - </property> - </item> - <item> - <property name="text"> - <string>Spanish (español)</string> - </property> - </item> - <item> - <property name="text"> - <string>Simplified Chinese (简体中文)</string> - </property> - </item> - <item> - <property name="text"> - <string>Korean (한국어)</string> - </property> - </item> - <item> - <property name="text"> - <string>Dutch (Nederlands)</string> - </property> - </item> - <item> - <property name="text"> - <string>Portuguese (português)</string> - </property> - </item> - <item> - <property name="text"> - <string>Russian (Русский)</string> - </property> - </item> - <item> - <property name="text"> - <string>Traditional Chinese (正體中文)</string> - </property> - </item> - </widget> - </item> - <item row="3" column="0"> - <widget class="QLabel" name="label_sound"> - <property name="text"> - <string>Sound output mode</string> - </property> - </widget> - </item> - <item row="3" column="1"> - <widget class="QComboBox" name="combo_sound"> - <item> - <property name="text"> - <string>Mono</string> - </property> - </item> - <item> - <property name="text"> - <string>Stereo</string> - </property> - </item> - <item> - <property name="text"> - <string>Surround</string> - </property> - </item> - </widget> - </item> - <item row="4" column="0"> - <widget class="QLabel" name="label_console_id"> - <property name="text"> - <string>Console ID:</string> - </property> - </widget> - </item> - <item row="4" column="1"> - <widget class="QPushButton" name="button_regenerate_console_id"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="layoutDirection"> - <enum>Qt::RightToLeft</enum> - </property> - <property name="text"> - <string>Regenerate</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QLabel" name="label_disable_info"> - <property name="text"> - <string>System settings are available only when game is not running.</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> diff --git a/src/citra_qt/configuration/configure_web.cpp b/src/citra_qt/configuration/configure_web.cpp deleted file mode 100644 index bf8c21ac7..000000000 --- a/src/citra_qt/configuration/configure_web.cpp +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2017 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <QMessageBox> -#include "citra_qt/configuration/configure_web.h" -#include "core/settings.h" -#include "core/telemetry_session.h" -#include "ui_configure_web.h" - -ConfigureWeb::ConfigureWeb(QWidget* parent) - : QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) { - ui->setupUi(this); - connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this, - &ConfigureWeb::RefreshTelemetryID); - connect(ui->button_verify_login, &QPushButton::clicked, this, &ConfigureWeb::VerifyLogin); - connect(this, &ConfigureWeb::LoginVerified, this, &ConfigureWeb::OnLoginVerified); - - this->setConfiguration(); -} - -ConfigureWeb::~ConfigureWeb() {} - -void ConfigureWeb::setConfiguration() { - ui->web_credentials_disclaimer->setWordWrap(true); - ui->telemetry_learn_more->setOpenExternalLinks(true); - ui->telemetry_learn_more->setText(tr("<a " - "href='https://citra-emu.org/entry/" - "telemetry-and-why-thats-a-good-thing/'>Learn more</a>")); - - ui->web_signup_link->setOpenExternalLinks(true); - ui->web_signup_link->setText(tr("<a href='https://services.citra-emu.org/'>Sign up</a>")); - ui->web_token_info_link->setOpenExternalLinks(true); - ui->web_token_info_link->setText( - tr("<a href='https://citra-emu.org/wiki/citra-web-service/'>What is my token?</a>")); - - ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry); - ui->edit_username->setText(QString::fromStdString(Settings::values.citra_username)); - ui->edit_token->setText(QString::fromStdString(Settings::values.citra_token)); - // Connect after setting the values, to avoid calling OnLoginChanged now - connect(ui->edit_token, &QLineEdit::textChanged, this, &ConfigureWeb::OnLoginChanged); - connect(ui->edit_username, &QLineEdit::textChanged, this, &ConfigureWeb::OnLoginChanged); - ui->label_telemetry_id->setText( - tr("Telemetry ID: 0x%1").arg(QString::number(Core::GetTelemetryId(), 16).toUpper())); - user_verified = true; -} - -void ConfigureWeb::applyConfiguration() { - Settings::values.enable_telemetry = ui->toggle_telemetry->isChecked(); - if (user_verified) { - Settings::values.citra_username = ui->edit_username->text().toStdString(); - Settings::values.citra_token = ui->edit_token->text().toStdString(); - } else { - QMessageBox::warning(this, tr("Username and token not verfied"), - tr("Username and token were not verified. The changes to your " - "username and/or token have not been saved.")); - } - Settings::Apply(); -} - -void ConfigureWeb::RefreshTelemetryID() { - const u64 new_telemetry_id{Core::RegenerateTelemetryId()}; - ui->label_telemetry_id->setText( - tr("Telemetry ID: 0x%1").arg(QString::number(new_telemetry_id, 16).toUpper())); -} - -void ConfigureWeb::OnLoginChanged() { - if (ui->edit_username->text().isEmpty() && ui->edit_token->text().isEmpty()) { - user_verified = true; - ui->label_username_verified->setPixmap(QPixmap(":/icons/checked.png")); - ui->label_token_verified->setPixmap(QPixmap(":/icons/checked.png")); - } else { - user_verified = false; - ui->label_username_verified->setPixmap(QPixmap(":/icons/failed.png")); - ui->label_token_verified->setPixmap(QPixmap(":/icons/failed.png")); - } -} - -void ConfigureWeb::VerifyLogin() { - verified = - Core::VerifyLogin(ui->edit_username->text().toStdString(), - ui->edit_token->text().toStdString(), [&]() { emit LoginVerified(); }); - ui->button_verify_login->setDisabled(true); - ui->button_verify_login->setText(tr("Verifying")); -} - -void ConfigureWeb::OnLoginVerified() { - ui->button_verify_login->setEnabled(true); - ui->button_verify_login->setText(tr("Verify")); - if (verified.get()) { - user_verified = true; - ui->label_username_verified->setPixmap(QPixmap(":/icons/checked.png")); - ui->label_token_verified->setPixmap(QPixmap(":/icons/checked.png")); - } else { - ui->label_username_verified->setPixmap(QPixmap(":/icons/failed.png")); - ui->label_token_verified->setPixmap(QPixmap(":/icons/failed.png")); - QMessageBox::critical( - this, tr("Verification failed"), - tr("Verification failed. Check that you have entered your username and token " - "correctly, and that your internet connection is working.")); - } -} diff --git a/src/citra_qt/configuration/configure_web.h b/src/citra_qt/configuration/configure_web.h deleted file mode 100644 index ad2d58f6e..000000000 --- a/src/citra_qt/configuration/configure_web.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2017 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <future> -#include <memory> -#include <QWidget> - -namespace Ui { -class ConfigureWeb; -} - -class ConfigureWeb : public QWidget { - Q_OBJECT - -public: - explicit ConfigureWeb(QWidget* parent = nullptr); - ~ConfigureWeb(); - - void applyConfiguration(); - -public slots: - void RefreshTelemetryID(); - void OnLoginChanged(); - void VerifyLogin(); - void OnLoginVerified(); - -signals: - void LoginVerified(); - -private: - void setConfiguration(); - - bool user_verified = true; - std::future<bool> verified; - - std::unique_ptr<Ui::ConfigureWeb> ui; -}; diff --git a/src/citra_qt/configuration/configure_web.ui b/src/citra_qt/configuration/configure_web.ui deleted file mode 100644 index dd996ab62..000000000 --- a/src/citra_qt/configuration/configure_web.ui +++ /dev/null @@ -1,190 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ui version="4.0"> - <class>ConfigureWeb</class> - <widget class="QWidget" name="ConfigureWeb"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>926</width> - <height>561</height> - </rect> - </property> - <property name="windowTitle"> - <string>Form</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QGroupBox" name="groupBoxWebConfig"> - <property name="title"> - <string>Citra Web Service</string> - </property> - <layout class="QVBoxLayout" name="verticalLayoutCitraWebService"> - <item> - <widget class="QLabel" name="web_credentials_disclaimer"> - <property name="text"> - <string>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</string> - </property> - </widget> - </item> - <item> - <layout class="QGridLayout" name="gridLayoutCitraUsername"> - <item row="2" column="3"> - <widget class="QPushButton" name="button_verify_login"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="layoutDirection"> - <enum>Qt::RightToLeft</enum> - </property> - <property name="text"> - <string>Verify</string> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="web_signup_link"> - <property name="text"> - <string>Sign up</string> - </property> - </widget> - </item> - <item row="0" column="1" colspan="3"> - <widget class="QLineEdit" name="edit_username"> - <property name="maxLength"> - <number>36</number> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_token"> - <property name="text"> - <string>Token: </string> - </property> - </widget> - </item> - <item row="1" column="4"> - <widget class="QLabel" name="label_token_verified"> - </widget> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="label_username"> - <property name="text"> - <string>Username: </string> - </property> - </widget> - </item> - <item row="0" column="4"> - <widget class="QLabel" name="label_username_verified"> - </widget> - </item> - <item row="1" column="1" colspan="3"> - <widget class="QLineEdit" name="edit_token"> - <property name="maxLength"> - <number>36</number> - </property> - <property name="echoMode"> - <enum>QLineEdit::Password</enum> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="web_token_info_link"> - <property name="text"> - <string>What is my token?</string> - </property> - </widget> - </item> - <item row="2" column="2"> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox"> - <property name="title"> - <string>Telemetry</string> - </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <widget class="QCheckBox" name="toggle_telemetry"> - <property name="text"> - <string>Share anonymous usage data with the Citra team</string> - </property> - </widget> - </item> - <item> - <widget class="QLabel" name="telemetry_learn_more"> - <property name="text"> - <string>Learn more</string> - </property> - </widget> - </item> - <item> - <layout class="QGridLayout" name="gridLayoutTelemetryId"> - <item row="0" column="0"> - <widget class="QLabel" name="label_telemetry_id"> - <property name="text"> - <string>Telemetry ID:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QPushButton" name="button_regenerate_telemetry_id"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="layoutDirection"> - <enum>Qt::RightToLeft</enum> - </property> - <property name="text"> - <string>Regenerate</string> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - </layout> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - <resources/> - <connections/> -</ui> |