diff --git a/src/citron/configuration/configure_cpu.ui b/src/citron/configuration/configure_cpu.ui index 13fd43605..991e5d7b0 100644 --- a/src/citron/configuration/configure_cpu.ui +++ b/src/citron/configuration/configure_cpu.ui @@ -1,151 +1,70 @@ - - - ConfigureCpu - - - - 0 - 0 - 448 - 439 - - - - Form - - - CPU - - - - - - 0 - - - - - General - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - We recommend setting accuracy to "Auto". - - - false - - - - - - - - - - CPU Backend - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - false - - - - - - - Unsafe CPU Optimization Settings - - - - - - These settings reduce accuracy for speed. - - - false - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - - - - Qt::Vertical - - - QSizePolicy::Expanding - - - - 20 - 40 - - - - - - - - - - - +// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include // Added for stylesheet property +#include +#include "citron/configuration/configuration_shared.h" +#include "citron/configuration/shared_translation.h" + +class QComboBox; + +namespace Core { + class System; +} + +namespace Ui { + class ConfigureCpu; +} + +namespace ConfigurationShared { + class Builder; +} + +class ConfigureCpu : public ConfigurationShared::Tab { + Q_OBJECT + + // This property allows the main UI file to pass its stylesheet to this widget + Q_PROPERTY(QString templateStyleSheet READ GetTemplateStyleSheet WRITE SetTemplateStyleSheet NOTIFY TemplateStyleSheetChanged) + +public: + explicit ConfigureCpu(const Core::System& system_, + std::shared_ptr> group, + const ConfigurationShared::Builder& builder, QWidget* parent = nullptr); + ~ConfigureCpu() override; + + void ApplyConfiguration() override; + void SetConfiguration() override; + + // These functions get and set the stylesheet property + QString GetTemplateStyleSheet() const; + void SetTemplateStyleSheet(const QString& sheet); + +signals: + void TemplateStyleSheetChanged(); + +private: + void changeEvent(QEvent* event) override; + void RetranslateUI(); + + void UpdateGroup(int index); + + void Setup(const ConfigurationShared::Builder& builder); + + std::unique_ptr ui; + + const Core::System& system; + + const ConfigurationShared::ComboboxTranslationMap& combobox_translations; + std::vector> apply_funcs{}; + + QComboBox* accuracy_combobox; + QComboBox* backend_combobox; + + // This variable will hold the raw stylesheet string + QString m_template_style_sheet; +};