diff options
| -rw-r--r-- | src/yuzu/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_audio.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_cpu.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_general.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_linux_tab.cpp | 75 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_linux_tab.h | 44 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_linux_tab.ui | 53 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_motion_touch.h | 1 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_mouse_panning.h | 1 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_per_game.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_per_game.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_system.h | 2 |
14 files changed, 197 insertions, 0 deletions
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 90278052a..6a87b0811 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt | |||
| @@ -96,6 +96,9 @@ add_executable(yuzu | |||
| 96 | configuration/configure_input_profile_dialog.cpp | 96 | configuration/configure_input_profile_dialog.cpp |
| 97 | configuration/configure_input_profile_dialog.h | 97 | configuration/configure_input_profile_dialog.h |
| 98 | configuration/configure_input_profile_dialog.ui | 98 | configuration/configure_input_profile_dialog.ui |
| 99 | configuration/configure_linux_tab.cpp | ||
| 100 | configuration/configure_linux_tab.h | ||
| 101 | configuration/configure_linux_tab.ui | ||
| 99 | configuration/configure_mouse_panning.cpp | 102 | configuration/configure_mouse_panning.cpp |
| 100 | configuration/configure_mouse_panning.h | 103 | configuration/configure_mouse_panning.h |
| 101 | configuration/configure_mouse_panning.ui | 104 | configuration/configure_mouse_panning.ui |
diff --git a/src/yuzu/configuration/configure_audio.h b/src/yuzu/configuration/configure_audio.h index 79538e81c..82d7f6524 100644 --- a/src/yuzu/configuration/configure_audio.h +++ b/src/yuzu/configuration/configure_audio.h | |||
| @@ -24,6 +24,8 @@ class Builder; | |||
| 24 | } | 24 | } |
| 25 | 25 | ||
| 26 | class ConfigureAudio : public ConfigurationShared::Tab { | 26 | class ConfigureAudio : public ConfigurationShared::Tab { |
| 27 | Q_OBJECT | ||
| 28 | |||
| 27 | public: | 29 | public: |
| 28 | explicit ConfigureAudio(const Core::System& system_, | 30 | explicit ConfigureAudio(const Core::System& system_, |
| 29 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, | 31 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, |
diff --git a/src/yuzu/configuration/configure_cpu.h b/src/yuzu/configuration/configure_cpu.h index a102b4c1f..7bbeac496 100644 --- a/src/yuzu/configuration/configure_cpu.h +++ b/src/yuzu/configuration/configure_cpu.h | |||
| @@ -24,6 +24,8 @@ class Builder; | |||
| 24 | } | 24 | } |
| 25 | 25 | ||
| 26 | class ConfigureCpu : public ConfigurationShared::Tab { | 26 | class ConfigureCpu : public ConfigurationShared::Tab { |
| 27 | Q_OBJECT | ||
| 28 | |||
| 27 | public: | 29 | public: |
| 28 | explicit ConfigureCpu(const Core::System& system_, | 30 | explicit ConfigureCpu(const Core::System& system_, |
| 29 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, | 31 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, |
diff --git a/src/yuzu/configuration/configure_general.h b/src/yuzu/configuration/configure_general.h index 2d953f679..ada6526a6 100644 --- a/src/yuzu/configuration/configure_general.h +++ b/src/yuzu/configuration/configure_general.h | |||
| @@ -25,6 +25,8 @@ class Builder; | |||
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | class ConfigureGeneral : public ConfigurationShared::Tab { | 27 | class ConfigureGeneral : public ConfigurationShared::Tab { |
| 28 | Q_OBJECT | ||
| 29 | |||
| 28 | public: | 30 | public: |
| 29 | explicit ConfigureGeneral(const Core::System& system_, | 31 | explicit ConfigureGeneral(const Core::System& system_, |
| 30 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, | 32 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, |
diff --git a/src/yuzu/configuration/configure_graphics.h b/src/yuzu/configuration/configure_graphics.h index 5c8286836..b92b4496b 100644 --- a/src/yuzu/configuration/configure_graphics.h +++ b/src/yuzu/configuration/configure_graphics.h | |||
| @@ -43,6 +43,8 @@ class Builder; | |||
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | class ConfigureGraphics : public ConfigurationShared::Tab { | 45 | class ConfigureGraphics : public ConfigurationShared::Tab { |
| 46 | Q_OBJECT | ||
| 47 | |||
| 46 | public: | 48 | public: |
| 47 | explicit ConfigureGraphics( | 49 | explicit ConfigureGraphics( |
| 48 | const Core::System& system_, std::vector<VkDeviceInfo::Record>& records, | 50 | const Core::System& system_, std::vector<VkDeviceInfo::Record>& records, |
diff --git a/src/yuzu/configuration/configure_graphics_advanced.h b/src/yuzu/configuration/configure_graphics_advanced.h index 78b5389c3..82431987e 100644 --- a/src/yuzu/configuration/configure_graphics_advanced.h +++ b/src/yuzu/configuration/configure_graphics_advanced.h | |||
| @@ -21,6 +21,8 @@ class Builder; | |||
| 21 | } | 21 | } |
| 22 | 22 | ||
| 23 | class ConfigureGraphicsAdvanced : public ConfigurationShared::Tab { | 23 | class ConfigureGraphicsAdvanced : public ConfigurationShared::Tab { |
| 24 | Q_OBJECT | ||
| 25 | |||
| 24 | public: | 26 | public: |
| 25 | explicit ConfigureGraphicsAdvanced( | 27 | explicit ConfigureGraphicsAdvanced( |
| 26 | const Core::System& system_, std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, | 28 | const Core::System& system_, std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, |
diff --git a/src/yuzu/configuration/configure_linux_tab.cpp b/src/yuzu/configuration/configure_linux_tab.cpp new file mode 100644 index 000000000..ab3d18816 --- /dev/null +++ b/src/yuzu/configuration/configure_linux_tab.cpp | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | #include "common/settings.h" | ||
| 5 | #include "core/core.h" | ||
| 6 | #include "ui_configure_linux_tab.h" | ||
| 7 | #include "yuzu/configuration/configuration_shared.h" | ||
| 8 | #include "yuzu/configuration/configure_linux_tab.h" | ||
| 9 | #include "yuzu/configuration/shared_widget.h" | ||
| 10 | |||
| 11 | ConfigureLinuxTab::ConfigureLinuxTab(const Core::System& system_, | ||
| 12 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group_, | ||
| 13 | const ConfigurationShared::Builder& builder, QWidget* parent) | ||
| 14 | : Tab(group_, parent), ui(std::make_unique<Ui::ConfigureLinuxTab>()), system{system_} { | ||
| 15 | ui->setupUi(this); | ||
| 16 | |||
| 17 | Setup(builder); | ||
| 18 | |||
| 19 | SetConfiguration(); | ||
| 20 | } | ||
| 21 | |||
| 22 | ConfigureLinuxTab::~ConfigureLinuxTab() = default; | ||
| 23 | |||
| 24 | void ConfigureLinuxTab::SetConfiguration() {} | ||
| 25 | void ConfigureLinuxTab::Setup(const ConfigurationShared::Builder& builder) { | ||
| 26 | QLayout& linux_layout = *ui->linux_widget->layout(); | ||
| 27 | |||
| 28 | std::map<u32, QWidget*> linux_hold{}; | ||
| 29 | |||
| 30 | std::vector<Settings::BasicSetting*> settings; | ||
| 31 | const auto push = [&](Settings::Category category) { | ||
| 32 | for (const auto setting : Settings::values.linkage.by_category[category]) { | ||
| 33 | settings.push_back(setting); | ||
| 34 | } | ||
| 35 | }; | ||
| 36 | |||
| 37 | push(Settings::Category::Linux); | ||
| 38 | |||
| 39 | for (auto* setting : settings) { | ||
| 40 | auto* widget = builder.BuildWidget(setting, apply_funcs); | ||
| 41 | |||
| 42 | if (widget == nullptr) { | ||
| 43 | continue; | ||
| 44 | } | ||
| 45 | if (!widget->Valid()) { | ||
| 46 | widget->deleteLater(); | ||
| 47 | continue; | ||
| 48 | } | ||
| 49 | |||
| 50 | linux_hold.insert({setting->Id(), widget}); | ||
| 51 | } | ||
| 52 | |||
| 53 | for (const auto& [id, widget] : linux_hold) { | ||
| 54 | linux_layout.addWidget(widget); | ||
| 55 | } | ||
| 56 | } | ||
| 57 | |||
| 58 | void ConfigureLinuxTab::ApplyConfiguration() { | ||
| 59 | const bool is_powered_on = system.IsPoweredOn(); | ||
| 60 | for (const auto& apply_func : apply_funcs) { | ||
| 61 | apply_func(is_powered_on); | ||
| 62 | } | ||
| 63 | } | ||
| 64 | |||
| 65 | void ConfigureLinuxTab::changeEvent(QEvent* event) { | ||
| 66 | if (event->type() == QEvent::LanguageChange) { | ||
| 67 | RetranslateUI(); | ||
| 68 | } | ||
| 69 | |||
| 70 | QWidget::changeEvent(event); | ||
| 71 | } | ||
| 72 | |||
| 73 | void ConfigureLinuxTab::RetranslateUI() { | ||
| 74 | ui->retranslateUi(this); | ||
| 75 | } | ||
diff --git a/src/yuzu/configuration/configure_linux_tab.h b/src/yuzu/configuration/configure_linux_tab.h new file mode 100644 index 000000000..2f402079c --- /dev/null +++ b/src/yuzu/configuration/configure_linux_tab.h | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include <QWidget> | ||
| 7 | |||
| 8 | namespace Core { | ||
| 9 | class System; | ||
| 10 | } | ||
| 11 | |||
| 12 | namespace Ui { | ||
| 13 | class ConfigureLinuxTab; | ||
| 14 | } | ||
| 15 | |||
| 16 | namespace ConfigurationShared { | ||
| 17 | class Builder; | ||
| 18 | } | ||
| 19 | |||
| 20 | class ConfigureLinuxTab : public ConfigurationShared::Tab { | ||
| 21 | Q_OBJECT | ||
| 22 | |||
| 23 | public: | ||
| 24 | explicit ConfigureLinuxTab(const Core::System& system_, | ||
| 25 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, | ||
| 26 | const ConfigurationShared::Builder& builder, | ||
| 27 | QWidget* parent = nullptr); | ||
| 28 | ~ConfigureLinuxTab() override; | ||
| 29 | |||
| 30 | void ApplyConfiguration() override; | ||
| 31 | void SetConfiguration() override; | ||
| 32 | |||
| 33 | private: | ||
| 34 | void changeEvent(QEvent* event) override; | ||
| 35 | void RetranslateUI(); | ||
| 36 | |||
| 37 | void Setup(const ConfigurationShared::Builder& builder); | ||
| 38 | |||
| 39 | std::unique_ptr<Ui::ConfigureLinuxTab> ui; | ||
| 40 | |||
| 41 | const Core::System& system; | ||
| 42 | |||
| 43 | std::vector<std::function<void(bool)>> apply_funcs{}; | ||
| 44 | }; | ||
diff --git a/src/yuzu/configuration/configure_linux_tab.ui b/src/yuzu/configuration/configure_linux_tab.ui new file mode 100644 index 000000000..f8e07f581 --- /dev/null +++ b/src/yuzu/configuration/configure_linux_tab.ui | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | <ui version="4.0"> | ||
| 3 | <class>ConfigureLinuxTab</class> | ||
| 4 | <widget class="QWidget" name="ConfigureLinuxTab"> | ||
| 5 | <property name="accessibleName"> | ||
| 6 | <string>Linux</string> | ||
| 7 | </property> | ||
| 8 | <layout class="QVBoxLayout"> | ||
| 9 | <item> | ||
| 10 | <widget class="QGroupBox" name="LinuxGroupBox"> | ||
| 11 | <property name="title"> | ||
| 12 | <string>Linux</string> | ||
| 13 | </property> | ||
| 14 | <layout class="QVBoxLayout" name="LinuxVerticalLayout_1"> | ||
| 15 | <item> | ||
| 16 | <widget class="QWidget" name="linux_widget" native="true"> | ||
| 17 | <layout class="QVBoxLayout" name="LinuxVerticalLayout_2"> | ||
| 18 | <property name="leftMargin"> | ||
| 19 | <number>0</number> | ||
| 20 | </property> | ||
| 21 | <property name="topMargin"> | ||
| 22 | <number>0</number> | ||
| 23 | </property> | ||
| 24 | <property name="rightMargin"> | ||
| 25 | <number>0</number> | ||
| 26 | </property> | ||
| 27 | <property name="bottomMargin"> | ||
| 28 | <number>0</number> | ||
| 29 | </property> | ||
| 30 | </layout> | ||
| 31 | </widget> | ||
| 32 | </item> | ||
| 33 | </layout> | ||
| 34 | </widget> | ||
| 35 | </item> | ||
| 36 | <item> | ||
| 37 | <spacer name="verticalSpacer"> | ||
| 38 | <property name="orientation"> | ||
| 39 | <enum>Qt::Vertical</enum> | ||
| 40 | </property> | ||
| 41 | <property name="sizeHint" stdset="0"> | ||
| 42 | <size> | ||
| 43 | <width>20</width> | ||
| 44 | <height>40</height> | ||
| 45 | </size> | ||
| 46 | </property> | ||
| 47 | </spacer> | ||
| 48 | </item> | ||
| 49 | </layout> | ||
| 50 | </widget> | ||
| 51 | <resources/> | ||
| 52 | <connections/> | ||
| 53 | </ui> | ||
diff --git a/src/yuzu/configuration/configure_motion_touch.h b/src/yuzu/configuration/configure_motion_touch.h index 7dcc9318e..a5db0de51 100644 --- a/src/yuzu/configuration/configure_motion_touch.h +++ b/src/yuzu/configuration/configure_motion_touch.h | |||
| @@ -26,6 +26,7 @@ class ConfigureMotionTouch; | |||
| 26 | /// A dialog for touchpad calibration configuration. | 26 | /// A dialog for touchpad calibration configuration. |
| 27 | class CalibrationConfigurationDialog : public QDialog { | 27 | class CalibrationConfigurationDialog : public QDialog { |
| 28 | Q_OBJECT | 28 | Q_OBJECT |
| 29 | |||
| 29 | public: | 30 | public: |
| 30 | explicit CalibrationConfigurationDialog(QWidget* parent, const std::string& host, u16 port); | 31 | explicit CalibrationConfigurationDialog(QWidget* parent, const std::string& host, u16 port); |
| 31 | ~CalibrationConfigurationDialog() override; | 32 | ~CalibrationConfigurationDialog() override; |
diff --git a/src/yuzu/configuration/configure_mouse_panning.h b/src/yuzu/configuration/configure_mouse_panning.h index 08c6e1f62..f5e62ee13 100644 --- a/src/yuzu/configuration/configure_mouse_panning.h +++ b/src/yuzu/configuration/configure_mouse_panning.h | |||
| @@ -16,6 +16,7 @@ class ConfigureMousePanning; | |||
| 16 | 16 | ||
| 17 | class ConfigureMousePanning : public QDialog { | 17 | class ConfigureMousePanning : public QDialog { |
| 18 | Q_OBJECT | 18 | Q_OBJECT |
| 19 | |||
| 19 | public: | 20 | public: |
| 20 | explicit ConfigureMousePanning(QWidget* parent, InputCommon::InputSubsystem* input_subsystem_, | 21 | explicit ConfigureMousePanning(QWidget* parent, InputCommon::InputSubsystem* input_subsystem_, |
| 21 | float right_stick_deadzone, float right_stick_range); | 22 | float right_stick_deadzone, float right_stick_range); |
diff --git a/src/yuzu/configuration/configure_per_game.cpp b/src/yuzu/configuration/configure_per_game.cpp index b274a3321..9d38ab812 100644 --- a/src/yuzu/configuration/configure_per_game.cpp +++ b/src/yuzu/configuration/configure_per_game.cpp | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include "yuzu/configuration/configure_graphics.h" | 33 | #include "yuzu/configuration/configure_graphics.h" |
| 34 | #include "yuzu/configuration/configure_graphics_advanced.h" | 34 | #include "yuzu/configuration/configure_graphics_advanced.h" |
| 35 | #include "yuzu/configuration/configure_input_per_game.h" | 35 | #include "yuzu/configuration/configure_input_per_game.h" |
| 36 | #include "yuzu/configuration/configure_linux_tab.h" | ||
| 36 | #include "yuzu/configuration/configure_per_game.h" | 37 | #include "yuzu/configuration/configure_per_game.h" |
| 37 | #include "yuzu/configuration/configure_per_game_addons.h" | 38 | #include "yuzu/configuration/configure_per_game_addons.h" |
| 38 | #include "yuzu/configuration/configure_system.h" | 39 | #include "yuzu/configuration/configure_system.h" |
| @@ -60,6 +61,7 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const std::st | |||
| 60 | system_, vk_device_records, [&]() { graphics_advanced_tab->ExposeComputeOption(); }, | 61 | system_, vk_device_records, [&]() { graphics_advanced_tab->ExposeComputeOption(); }, |
| 61 | [](Settings::AspectRatio, Settings::ResolutionSetup) {}, tab_group, *builder, this); | 62 | [](Settings::AspectRatio, Settings::ResolutionSetup) {}, tab_group, *builder, this); |
| 62 | input_tab = std::make_unique<ConfigureInputPerGame>(system_, game_config.get(), this); | 63 | input_tab = std::make_unique<ConfigureInputPerGame>(system_, game_config.get(), this); |
| 64 | linux_tab = std::make_unique<ConfigureLinuxTab>(system_, tab_group, *builder, this); | ||
| 63 | system_tab = std::make_unique<ConfigureSystem>(system_, tab_group, *builder, this); | 65 | system_tab = std::make_unique<ConfigureSystem>(system_, tab_group, *builder, this); |
| 64 | 66 | ||
| 65 | ui->setupUi(this); | 67 | ui->setupUi(this); |
| @@ -71,6 +73,10 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const std::st | |||
| 71 | ui->tabWidget->addTab(graphics_advanced_tab.get(), tr("Adv. Graphics")); | 73 | ui->tabWidget->addTab(graphics_advanced_tab.get(), tr("Adv. Graphics")); |
| 72 | ui->tabWidget->addTab(audio_tab.get(), tr("Audio")); | 74 | ui->tabWidget->addTab(audio_tab.get(), tr("Audio")); |
| 73 | ui->tabWidget->addTab(input_tab.get(), tr("Input Profiles")); | 75 | ui->tabWidget->addTab(input_tab.get(), tr("Input Profiles")); |
| 76 | // Only show Linux tab on Unix | ||
| 77 | #ifdef __unix__ | ||
| 78 | ui->tabWidget->addTab(linux_tab.get(), tr("Linux")); | ||
| 79 | #endif | ||
| 74 | 80 | ||
| 75 | setFocusPolicy(Qt::ClickFocus); | 81 | setFocusPolicy(Qt::ClickFocus); |
| 76 | setWindowTitle(tr("Properties")); | 82 | setWindowTitle(tr("Properties")); |
diff --git a/src/yuzu/configuration/configure_per_game.h b/src/yuzu/configuration/configure_per_game.h index c8ee46c04..805bd47c0 100644 --- a/src/yuzu/configuration/configure_per_game.h +++ b/src/yuzu/configuration/configure_per_game.h | |||
| @@ -32,6 +32,7 @@ class ConfigureCpu; | |||
| 32 | class ConfigureGraphics; | 32 | class ConfigureGraphics; |
| 33 | class ConfigureGraphicsAdvanced; | 33 | class ConfigureGraphicsAdvanced; |
| 34 | class ConfigureInputPerGame; | 34 | class ConfigureInputPerGame; |
| 35 | class ConfigureLinuxTab; | ||
| 35 | class ConfigureSystem; | 36 | class ConfigureSystem; |
| 36 | 37 | ||
| 37 | class QGraphicsScene; | 38 | class QGraphicsScene; |
| @@ -85,5 +86,6 @@ private: | |||
| 85 | std::unique_ptr<ConfigureGraphicsAdvanced> graphics_advanced_tab; | 86 | std::unique_ptr<ConfigureGraphicsAdvanced> graphics_advanced_tab; |
| 86 | std::unique_ptr<ConfigureGraphics> graphics_tab; | 87 | std::unique_ptr<ConfigureGraphics> graphics_tab; |
| 87 | std::unique_ptr<ConfigureInputPerGame> input_tab; | 88 | std::unique_ptr<ConfigureInputPerGame> input_tab; |
| 89 | std::unique_ptr<ConfigureLinuxTab> linux_tab; | ||
| 88 | std::unique_ptr<ConfigureSystem> system_tab; | 90 | std::unique_ptr<ConfigureSystem> system_tab; |
| 89 | }; | 91 | }; |
diff --git a/src/yuzu/configuration/configure_system.h b/src/yuzu/configuration/configure_system.h index eab99a48a..c606c32f5 100644 --- a/src/yuzu/configuration/configure_system.h +++ b/src/yuzu/configuration/configure_system.h | |||
| @@ -27,6 +27,8 @@ class Builder; | |||
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | class ConfigureSystem : public ConfigurationShared::Tab { | 29 | class ConfigureSystem : public ConfigurationShared::Tab { |
| 30 | Q_OBJECT | ||
| 31 | |||
| 30 | public: | 32 | public: |
| 31 | explicit ConfigureSystem(Core::System& system_, | 33 | explicit ConfigureSystem(Core::System& system_, |
| 32 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, | 34 | std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group, |