Browse Source

FIXME configuration: Avoid unnecessary allocations

ConfigurationShared::Widget needs to be created with a builder. This
would avoid some duplicated code.
nce_cpp
lat9nq 3 years ago
parent
commit
9be2b39509
  1. 4
      src/yuzu/configuration/configure_audio.cpp
  2. 4
      src/yuzu/configuration/configure_cpu.cpp
  3. 8
      src/yuzu/configuration/configure_graphics.cpp
  4. 4
      src/yuzu/configuration/configure_graphics_advanced.cpp
  5. 4
      src/yuzu/configuration/configure_system.cpp

4
src/yuzu/configuration/configure_audio.cpp

@ -47,6 +47,10 @@ void ConfigureAudio::Setup() {
push(Settings::Category::SystemAudio);
for (auto* setting : settings) {
if (!Settings::IsConfiguringGlobal() && !setting->Switchable()) {
continue;
}
auto* widget = [&]() {
if (setting->Id() == Settings::values.volume.Id()) {
// volume needs to be a slider (default is line edit)

4
src/yuzu/configuration/configure_cpu.cpp

@ -50,6 +50,10 @@ void ConfigureCpu::Setup() {
push(Settings::Category::CpuUnsafe);
for (const auto setting : settings) {
if (!Settings::IsConfiguringGlobal() && !setting->Switchable()) {
continue;
}
auto* widget = new ConfigurationShared::Widget(setting, translations, combobox_translations,
this, runtime_lock, apply_funcs);

8
src/yuzu/configuration/configure_graphics.cpp

@ -231,6 +231,10 @@ void ConfigureGraphics::Setup() {
std::forward_list<QWidget*> hold_api;
for (const auto setting : Settings::values.linkage.by_category[Settings::Category::Renderer]) {
if (!Settings::IsConfiguringGlobal() && !setting->Switchable()) {
continue;
}
ConfigurationShared::Widget* widget = [&]() {
// Set managed to false on these and set up the comboboxes ourselves
if (setting->Id() == Settings::values.vulkan_device.Id() ||
@ -273,8 +277,8 @@ void ConfigureGraphics::Setup() {
[=](bool) { UpdateAPILayout(); });
// Detach API's restore button and place it where we want
// Lets us put it on the side, and it will automatically scale if there's a second
// combobox (shader_backend, vulkan_device)
// Lets us put it on the side, and it will automatically scale if there's a
// second combobox (shader_backend, vulkan_device)
widget->layout()->removeWidget(api_restore_global_button);
api_layout->addWidget(api_restore_global_button);
}

4
src/yuzu/configuration/configure_graphics_advanced.cpp

@ -35,6 +35,10 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {
for (auto setting :
Settings::values.linkage.by_category[Settings::Category::RendererAdvanced]) {
if (!Settings::IsConfiguringGlobal() && !setting->Switchable()) {
continue;
}
ConfigurationShared::Widget* widget = new ConfigurationShared::Widget(
setting, translations, combobox_translations, this, runtime_lock, apply_funcs);

4
src/yuzu/configuration/configure_system.cpp

@ -123,6 +123,10 @@ void ConfigureSystem::Setup() {
push(Settings::values.linkage.by_category[Settings::Category::System]);
for (auto setting : settings) {
if (!Settings::IsConfiguringGlobal() && !setting->Switchable()) {
continue;
}
[[maybe_unused]] std::string label = setting->GetLabel();
ConfigurationShared::Widget* widget = [=]() {
if (setting->Id() == Settings::values.custom_rtc.Id()) {

Loading…
Cancel
Save