From c4246b80f84c0bd979e4506c17b1c9a34ac77ae8 Mon Sep 17 00:00:00 2001 From: lat9nq Date: Mon, 13 Jul 2020 21:32:10 -0400 Subject: [PATCH] configure_graphics: Implement highlighted overrides --- src/yuzu/configuration/configure_graphics.cpp | 43 ++- src/yuzu/configuration/configure_graphics.ui | 291 ++++++++++-------- 2 files changed, 200 insertions(+), 134 deletions(-) diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp index cb4706bd6..07dc75ccb 100644 --- a/src/yuzu/configuration/configure_graphics.cpp +++ b/src/yuzu/configuration/configure_graphics.cpp @@ -32,7 +32,12 @@ ConfigureGraphics::ConfigureGraphics(QWidget* parent) SetConfiguration(); connect(ui->api, qOverload(&QComboBox::currentIndexChanged), this, - [this] { UpdateDeviceComboBox(); }); + [this] { + UpdateDeviceComboBox(); + if (!Settings::configuring_global) { + ConfigurationShared::SetHighlight(ui->api_layout, "api_layout", ui->api->currentIndex() != ConfigurationShared::USE_GLOBAL_INDEX); + } + }); connect(ui->device, qOverload(&QComboBox::activated), this, [this](int device) { UpdateDeviceSelection(device); }); @@ -65,25 +70,23 @@ void ConfigureGraphics::SetConfiguration() { ui->api->setEnabled(runtime_lock); ui->use_asynchronous_gpu_emulation->setEnabled(runtime_lock); ui->use_disk_shader_cache->setEnabled(runtime_lock); + ui->use_disk_shader_cache->setChecked(Settings::values.use_disk_shader_cache.GetValue()); + ui->use_asynchronous_gpu_emulation->setChecked( + Settings::values.use_asynchronous_gpu_emulation.GetValue()); if (Settings::configuring_global) { ui->api->setCurrentIndex(static_cast(Settings::values.renderer_backend.GetValue())); ui->aspect_ratio_combobox->setCurrentIndex(Settings::values.aspect_ratio.GetValue()); - ui->use_disk_shader_cache->setChecked(Settings::values.use_disk_shader_cache.GetValue()); - ui->use_asynchronous_gpu_emulation->setChecked( - Settings::values.use_asynchronous_gpu_emulation.GetValue()); } else { - ConfigurationShared::SetPerGameSetting(ui->use_disk_shader_cache, - &Settings::values.use_disk_shader_cache); - ConfigurationShared::SetPerGameSetting(ui->use_asynchronous_gpu_emulation, - &Settings::values.use_asynchronous_gpu_emulation); - ConfigurationShared::SetPerGameSetting(ui->api, &Settings::values.renderer_backend); ConfigurationShared::SetPerGameSetting(ui->aspect_ratio_combobox, &Settings::values.aspect_ratio); ui->bg_combobox->setCurrentIndex(Settings::values.bg_red.UsingGlobal() ? 0 : 1); ui->bg_button->setEnabled(!Settings::values.bg_red.UsingGlobal()); + ConfigurationShared::SetHighlight(ui->aspect_ratio_layout, "aspect_ratio_layout", !Settings::values.aspect_ratio.UsingGlobal()); + ConfigurationShared::SetHighlight(ui->bg_layout, "bg_layout", !Settings::values.bg_red.UsingGlobal()); + // FIXME: ConfigurationShared::SetHighlight(ui->api_layout, "api_layout", !Settings::values.renderer_backend.UsingGlobal()); } UpdateBackgroundColorButton(QColor::fromRgbF(Settings::values.bg_red.GetValue(), @@ -240,11 +243,23 @@ void ConfigureGraphics::SetupPerGameUI() { return; } + connect(ui->aspect_ratio_combobox, static_cast(&QComboBox::activated), this, [this](int index) { + ConfigurationShared::SetHighlight(ui->aspect_ratio_layout, "aspect_ratio_layout", index != 0); + }); connect(ui->bg_combobox, static_cast(&QComboBox::activated), this, - [this](int index) { ui->bg_button->setEnabled(index == 1); }); + [this](int index) { + ui->bg_button->setEnabled(index == 1); + ConfigurationShared::SetHighlight(ui->bg_layout, "bg_layout", index == 1); + }); - ui->use_disk_shader_cache->setTristate(true); - ui->use_asynchronous_gpu_emulation->setTristate(true); - ConfigurationShared::InsertGlobalItem(ui->aspect_ratio_combobox); - ConfigurationShared::InsertGlobalItem(ui->api); + ConfigurationShared::SetColoredTristate(ui->use_disk_shader_cache, "use_disk_shader_cache", + Settings::values.use_disk_shader_cache, + ConfigurationShared::trackers.use_disk_shader_cache); + ConfigurationShared::SetColoredTristate( + ui->use_asynchronous_gpu_emulation, "use_asynchronous_gpu_emulation", + Settings::values.use_asynchronous_gpu_emulation, + ConfigurationShared::trackers.use_asynchronous_gpu_emulation); + + ConfigurationShared::InsertGlobalItem(ui->aspect_ratio_combobox, ui->aspect_ratio_combobox->itemText(Settings::values.aspect_ratio.GetValue(true))); + ConfigurationShared::InsertGlobalItem(ui->api, ui->api->itemText(static_cast(Settings::values.renderer_backend.GetValue(true)))); } diff --git a/src/yuzu/configuration/configure_graphics.ui b/src/yuzu/configuration/configure_graphics.ui index 62418fc14..6164569fe 100644 --- a/src/yuzu/configuration/configure_graphics.ui +++ b/src/yuzu/configuration/configure_graphics.ui @@ -23,43 +23,57 @@ - - - - - API: - - - - - - - - OpenGL - - - - - Vulkan - - - - - - - - - - - - Device: - - - - - - - + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + OpenGL + + + + + Vulkan + + + + + + + + API: + + + + + + + + + + Device: + + + + + + + @@ -85,96 +99,133 @@ - - - - - Aspect Ratio: - - - - - - + + + + 0 + + + 0 + + + 0 + + + 0 + + + - Default (16:9) + Aspect Ratio: - - - - Force 4:3 - - - - - Force 21:9 - - - - - Stretch to Window - - - - - + + + + + + + Default (16:9) + + + + + Force 4:3 + + + + + Force 21:9 + + + + + Stretch to Window + + + + + + - - - - - Use global background color - - - 0 - - - 10 - - - + + + + 0 + 0 + + + + + 6 + + + 0 + + + 0 + + + 0 + + + 0 + + + + Use global background color - - - - Set background color: + + 0 - - - - - - - Background Color: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 40 - 16777215 - - - - - + + 10 + + + + Use global background color + + + + + Set background color: + + + + + + + + Background Color: + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 40 + 16777215 + + + + + +