diff options
Diffstat (limited to 'src/yuzu/configuration/configure_per_game.cpp')
-rw-r--r-- | src/yuzu/configuration/configure_per_game.cpp | 66 |
1 files changed, 48 insertions, 18 deletions
diff --git a/src/yuzu/configuration/configure_per_game.cpp b/src/yuzu/configuration/configure_per_game.cpp index 8c00eec59e..1031399e11 100644 --- a/src/yuzu/configuration/configure_per_game.cpp +++ b/src/yuzu/configuration/configure_per_game.cpp @@ -30,32 +30,56 @@ #include "core/loader/loader.h" #include "ui_configure_per_game.h" #include "yuzu/configuration/config.h" +#include "yuzu/configuration/configure_audio.h" +#include "yuzu/configuration/configure_cpu.h" +#include "yuzu/configuration/configure_general.h" +#include "yuzu/configuration/configure_graphics.h" +#include "yuzu/configuration/configure_graphics_advanced.h" #include "yuzu/configuration/configure_input.h" #include "yuzu/configuration/configure_per_game.h" +#include "yuzu/configuration/configure_per_game_addons.h" +#include "yuzu/configuration/configure_system.h" #include "yuzu/uisettings.h" #include "yuzu/util/util.h" -ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id, const std::string& file_name) - : QDialog(parent), ui(std::make_unique<Ui::ConfigurePerGame>()), title_id(title_id) { +ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id, const std::string& file_name, + Core::System& system_) + : QDialog(parent), ui(std::make_unique<Ui::ConfigurePerGame>()), + title_id(title_id), system{system_}, 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_tab{std::make_unique<ConfigureGraphics>(system_, this)}, + graphics_advanced_tab{std::make_unique<ConfigureGraphicsAdvanced>(system_, this)}, + system_tab{std::make_unique<ConfigureSystem>(system_, this)} { 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); - - Settings::SetConfiguringGlobal(false); + game_config = + std::make_unique<Config>(system, config_file_name, Config::ConfigType::PerGameConfig); ui->setupUi(this); + + ui->tabWidget->addTab(addons_tab.get(), tr("Add-Ons")); + ui->tabWidget->addTab(general_tab.get(), tr("General")); + ui->tabWidget->addTab(system_tab.get(), tr("System")); + ui->tabWidget->addTab(cpu_tab.get(), tr("CPU")); + ui->tabWidget->addTab(graphics_tab.get(), tr("Graphics")); + ui->tabWidget->addTab(graphics_advanced_tab.get(), tr("GraphicsAdvanced")); + ui->tabWidget->addTab(audio_tab.get(), tr("Audio")); + setFocusPolicy(Qt::ClickFocus); setWindowTitle(tr("Properties")); // remove Help question mark button from the title bar setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); - ui->addonsTab->SetTitleId(title_id); + addons_tab->SetTitleId(title_id); scene = new QGraphicsScene; ui->icon_view->setScene(scene); - if (Core::System::GetInstance().IsPoweredOn()) { + if (system.IsPoweredOn()) { QPushButton* apply_button = ui->buttonBox->addButton(QDialogButtonBox::Apply); connect(apply_button, &QAbstractButton::clicked, this, &ConfigurePerGame::HandleApplyButtonClicked); @@ -67,15 +91,15 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id, const std::str ConfigurePerGame::~ConfigurePerGame() = default; void ConfigurePerGame::ApplyConfiguration() { - ui->addonsTab->ApplyConfiguration(); - ui->generalTab->ApplyConfiguration(); - ui->cpuTab->ApplyConfiguration(); - ui->systemTab->ApplyConfiguration(); - ui->graphicsTab->ApplyConfiguration(); - ui->graphicsAdvancedTab->ApplyConfiguration(); - ui->audioTab->ApplyConfiguration(); - - Core::System::GetInstance().ApplySettings(); + addons_tab->ApplyConfiguration(); + general_tab->ApplyConfiguration(); + cpu_tab->ApplyConfiguration(); + system_tab->ApplyConfiguration(); + graphics_tab->ApplyConfiguration(); + graphics_advanced_tab->ApplyConfiguration(); + audio_tab->ApplyConfiguration(); + + system.ApplySettings(); Settings::LogSettings(); game_config->Save(); @@ -108,12 +132,11 @@ void ConfigurePerGame::LoadConfiguration() { return; } - ui->addonsTab->LoadFromFile(file); + addons_tab->LoadFromFile(file); ui->display_title_id->setText( QStringLiteral("%1").arg(title_id, 16, 16, QLatin1Char{'0'}).toUpper()); - auto& system = Core::System::GetInstance(); const FileSys::PatchManager pm{title_id, system.GetFileSystemController(), system.GetContentProvider()}; const auto control = pm.GetControlMetadata(); @@ -164,4 +187,11 @@ void ConfigurePerGame::LoadConfiguration() { const auto valueText = ReadableByteSize(file->GetSize()); ui->display_size->setText(valueText); + + general_tab->SetConfiguration(); + cpu_tab->SetConfiguration(); + system_tab->SetConfiguration(); + graphics_tab->SetConfiguration(); + graphics_advanced_tab->SetConfiguration(); + audio_tab->SetConfiguration(); } |