// Copyright 2016 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include #include class HotkeyRegistry; namespace Ui { class ConfigureDialog; } namespace Core { class System; } class ConfigureGeneral; class ConfigureSystem; class ConfigureInput; class ConfigureHotkeys; class ConfigureGraphics; class ConfigureEnhancements; class ConfigureAudio; class ConfigureCamera; class ConfigureDebug; class ConfigureStorage; class ConfigureWeb; class ConfigureUi; class ConfigureDialog : public QDialog { Q_OBJECT public: explicit ConfigureDialog(QWidget* parent, HotkeyRegistry& registry, Core::System& system, std::span physical_devices, bool enable_web_config = true); ~ConfigureDialog() override; void ApplyConfiguration(); private slots: void OnLanguageChanged(const QString& locale); signals: void LanguageChanged(const QString& locale); private: void SetConfiguration(); void RetranslateUI(); void UpdateVisibleTabs(); void PopulateSelectionList(); std::unique_ptr ui; HotkeyRegistry& registry; Core::System& system; bool is_powered_on; std::unique_ptr general_tab; std::unique_ptr system_tab; std::unique_ptr input_tab; std::unique_ptr hotkeys_tab; std::unique_ptr graphics_tab; std::unique_ptr enhancements_tab; std::unique_ptr audio_tab; std::unique_ptr camera_tab; std::unique_ptr debug_tab; std::unique_ptr storage_tab; std::unique_ptr web_tab; std::unique_ptr ui_tab; };