diff options
| author | swurl <swurl@swurl.xyz> | 2025-04-23 20:57:53 -0400 |
|---|---|---|
| committer | swurl <swurl@swurl.xyz> | 2025-04-23 20:57:53 -0400 |
| commit | 1949e7c438bd0d8a19c8fa2861a3ef3461837fc7 (patch) | |
| tree | dae34b501ae943dfffd7d73292e7e0b93536916f /src/yuzu/configuration/configure_graphics_extensions.cpp | |
| parent | c64c404a2f60fee2126f671ab38940bf6c19089a (diff) | |
Add dynamic state extension configs
Signed-off-by: swurl <swurl@swurl.xyz>
Diffstat (limited to 'src/yuzu/configuration/configure_graphics_extensions.cpp')
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_extensions.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/yuzu/configuration/configure_graphics_extensions.cpp b/src/yuzu/configuration/configure_graphics_extensions.cpp new file mode 100644 index 0000000000..28e11b78b7 --- /dev/null +++ b/src/yuzu/configuration/configure_graphics_extensions.cpp @@ -0,0 +1,71 @@ +// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#include <vector> +#include <QLabel> +#include <qnamespace.h> +#include "common/settings.h" +#include "core/core.h" +#include "ui_configure_graphics_extensions.h" +#include "yuzu/configuration/configuration_shared.h" +#include "yuzu/configuration/configure_graphics_extensions.h" +#include "yuzu/configuration/shared_translation.h" +#include "yuzu/configuration/shared_widget.h" + +ConfigureGraphicsExtensions::ConfigureGraphicsExtensions( + const Core::System& system_, std::shared_ptr<std::vector<ConfigurationShared::Tab*>> group_, + const ConfigurationShared::Builder& builder, QWidget* parent) + : Tab(group_, parent), ui{std::make_unique<Ui::ConfigureGraphicsExtensions>()}, system{system_} { + + ui->setupUi(this); + + Setup(builder); + + SetConfiguration(); +} + +ConfigureGraphicsExtensions::~ConfigureGraphicsExtensions() = default; + +void ConfigureGraphicsExtensions::SetConfiguration() {} + +void ConfigureGraphicsExtensions::Setup(const ConfigurationShared::Builder& builder) { + auto& layout = *ui->populate_target->layout(); + std::map<u32, QWidget*> hold{}; // A map will sort the data for us + + for (auto setting : + Settings::values.linkage.by_category[Settings::Category::RendererExtensions]) { + ConfigurationShared::Widget* widget = builder.BuildWidget(setting, apply_funcs); + + if (widget == nullptr) { + continue; + } + if (!widget->Valid()) { + widget->deleteLater(); + continue; + } + + hold.emplace(setting->Id(), widget); + } + for (const auto& [id, widget] : hold) { + layout.addWidget(widget); + } +} + +void ConfigureGraphicsExtensions::ApplyConfiguration() { + const bool is_powered_on = system.IsPoweredOn(); + for (const auto& func : apply_funcs) { + func(is_powered_on); + } +} + +void ConfigureGraphicsExtensions::changeEvent(QEvent* event) { + if (event->type() == QEvent::LanguageChange) { + RetranslateUI(); + } + + QWidget::changeEvent(event); +} + +void ConfigureGraphicsExtensions::RetranslateUI() { + ui->retranslateUi(this); +} |
