diff options
Diffstat (limited to 'src/yuzu/configuration/configure_per_game.cpp')
-rw-r--r-- | src/yuzu/configuration/configure_per_game.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/yuzu/configuration/configure_per_game.cpp b/src/yuzu/configuration/configure_per_game.cpp index eb96e6068c..c54d7e76fe 100644 --- a/src/yuzu/configuration/configure_per_game.cpp +++ b/src/yuzu/configuration/configure_per_game.cpp @@ -24,6 +24,7 @@ #include "core/loader/loader.h" #include "ui_configure_per_game.h" #include "yuzu/configuration/config.h" +#include "yuzu/configuration/configuration_shared.h" #include "yuzu/configuration/configure_audio.h" #include "yuzu/configuration/configure_cpu.h" #include "yuzu/configuration/configure_general.h" @@ -40,22 +41,23 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const std::string& file_name, std::vector<VkDeviceInfo::Record>& vk_device_records, Core::System& system_) - : QDialog(parent), - ui(std::make_unique<Ui::ConfigurePerGame>()), title_id{title_id_}, system{system_} { + : QDialog(parent), ui(std::make_unique<Ui::ConfigurePerGame>()), title_id{title_id_}, + system{system_}, group{std::make_shared<std::forward_list<ConfigurationShared::Tab*>>()} { const auto file_path = std::filesystem::path(Common::FS::ToU8String(file_name)); const auto config_file_name = title_id == 0 ? Common::FS::PathToUTF8String(file_path.filename()) : fmt::format("{:016X}", title_id); game_config = std::make_unique<Config>(config_file_name, Config::ConfigType::PerGameConfig); addons_tab = std::make_unique<ConfigurePerGameAddons>(system_, this); - audio_tab = std::make_unique<ConfigureAudio>(system_, this); - cpu_tab = std::make_unique<ConfigureCpu>(system_, this); - general_tab = std::make_unique<ConfigureGeneral>(system_, this); - graphics_advanced_tab = std::make_unique<ConfigureGraphicsAdvanced>(system_, this); + audio_tab = std::make_unique<ConfigureAudio>(system_, group, this); + cpu_tab = std::make_unique<ConfigureCpu>(system_, group, this); + general_tab = std::make_unique<ConfigureGeneral>(system_, group, this); + graphics_advanced_tab = std::make_unique<ConfigureGraphicsAdvanced>(system_, group, this); graphics_tab = std::make_unique<ConfigureGraphics>( - system_, vk_device_records, [&]() { graphics_advanced_tab->ExposeComputeOption(); }, this); + system_, vk_device_records, [&]() { graphics_advanced_tab->ExposeComputeOption(); }, group, + this); input_tab = std::make_unique<ConfigureInputPerGame>(system_, game_config.get(), this); - system_tab = std::make_unique<ConfigureSystem>(system_, this); + system_tab = std::make_unique<ConfigureSystem>(system_, group, this); ui->setupUi(this); @@ -88,13 +90,10 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const std::st ConfigurePerGame::~ConfigurePerGame() = default; void ConfigurePerGame::ApplyConfiguration() { + for (const auto tab : *group) { + tab->ApplyConfiguration(); + } addons_tab->ApplyConfiguration(); - general_tab->ApplyConfiguration(); - cpu_tab->ApplyConfiguration(); - system_tab->ApplyConfiguration(); - graphics_tab->ApplyConfiguration(); - graphics_advanced_tab->ApplyConfiguration(); - audio_tab->ApplyConfiguration(); input_tab->ApplyConfiguration(); system.ApplySettings(); |