// SPDX-FileCopyrightText: 2016 Citra Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include #include #include "configuration/configuration_shared.h" #include "yuzu/vk_device_info.h" namespace Core { class System; } class ConfigureAudio; class ConfigureCpu; class ConfigureDebugTab; class ConfigureFilesystem; class ConfigureGeneral; class ConfigureGraphics; class ConfigureGraphicsAdvanced; class ConfigureHotkeys; class ConfigureInput; class ConfigureProfileManager; class ConfigureSystem; class ConfigureNetwork; class ConfigureUi; class ConfigureWeb; class HotkeyRegistry; namespace InputCommon { class InputSubsystem; } namespace Ui { class ConfigureDialog; } class ConfigureDialog : public QDialog { Q_OBJECT public: explicit ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_, InputCommon::InputSubsystem* input_subsystem, std::vector& vk_device_records, Core::System& system_, bool enable_web_config = true); ~ConfigureDialog() override; void ApplyConfiguration(); private slots: void OnLanguageChanged(const QString& locale); signals: void LanguageChanged(const QString& locale); private: void changeEvent(QEvent* event) override; void RetranslateUI(); void HandleApplyButtonClicked(); void SetConfiguration(); void UpdateVisibleTabs(); void PopulateSelectionList(); std::unique_ptr ui; HotkeyRegistry& registry; Core::System& system; std::forward_list tab_group; std::unique_ptr audio_tab; std::unique_ptr cpu_tab; std::unique_ptr debug_tab_tab; std::unique_ptr filesystem_tab; std::unique_ptr general_tab; std::unique_ptr graphics_advanced_tab; std::unique_ptr graphics_tab; std::unique_ptr hotkeys_tab; std::unique_ptr input_tab; std::unique_ptr network_tab; std::unique_ptr profile_tab; std::unique_ptr system_tab; std::unique_ptr ui_tab; std::unique_ptr web_tab; };