diff options
Diffstat (limited to 'src/citron/configuration/configure_dialog.h')
-rw-r--r-- | src/citron/configuration/configure_dialog.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/citron/configuration/configure_dialog.h b/src/citron/configuration/configure_dialog.h new file mode 100644 index 000000000..d0a24a07b --- /dev/null +++ b/src/citron/configuration/configure_dialog.h @@ -0,0 +1,94 @@ +// SPDX-FileCopyrightText: 2016 Citra Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <memory> +#include <vector> +#include <QDialog> +#include "configuration/shared_widget.h" +#include "yuzu/configuration/configuration_shared.h" +#include "yuzu/configuration/shared_translation.h" +#include "yuzu/vk_device_info.h" + +namespace Core { +class System; +} + +class ConfigureApplets; +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<VkDeviceInfo::Record>& 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::ConfigureDialog> ui; + HotkeyRegistry& registry; + + Core::System& system; + std::unique_ptr<ConfigurationShared::Builder> builder; + std::vector<ConfigurationShared::Tab*> tab_group; + + std::unique_ptr<ConfigureApplets> applets_tab; + std::unique_ptr<ConfigureAudio> audio_tab; + std::unique_ptr<ConfigureCpu> cpu_tab; + std::unique_ptr<ConfigureDebugTab> debug_tab_tab; + std::unique_ptr<ConfigureFilesystem> filesystem_tab; + std::unique_ptr<ConfigureGeneral> general_tab; + std::unique_ptr<ConfigureGraphicsAdvanced> graphics_advanced_tab; + std::unique_ptr<ConfigureUi> ui_tab; + std::unique_ptr<ConfigureGraphics> graphics_tab; + std::unique_ptr<ConfigureHotkeys> hotkeys_tab; + std::unique_ptr<ConfigureInput> input_tab; + std::unique_ptr<ConfigureNetwork> network_tab; + std::unique_ptr<ConfigureProfileManager> profile_tab; + std::unique_ptr<ConfigureSystem> system_tab; + std::unique_ptr<ConfigureWeb> web_tab; +}; |