configure_dialog.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. // SPDX-FileCopyrightText: 2016 Citra Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <forward_list>
  5. #include <memory>
  6. #include <vector>
  7. #include <QDialog>
  8. #include "yuzu/configuration/configuration_shared.h"
  9. #include "yuzu/configuration/shared_translation.h"
  10. #include "yuzu/vk_device_info.h"
  11. namespace Core {
  12. class System;
  13. }
  14. class ConfigureAudio;
  15. class ConfigureCpu;
  16. class ConfigureDebugTab;
  17. class ConfigureFilesystem;
  18. class ConfigureGeneral;
  19. class ConfigureGraphics;
  20. class ConfigureGraphicsAdvanced;
  21. class ConfigureHotkeys;
  22. class ConfigureInput;
  23. class ConfigureProfileManager;
  24. class ConfigureSystem;
  25. class ConfigureNetwork;
  26. class ConfigureUi;
  27. class ConfigureWeb;
  28. class HotkeyRegistry;
  29. namespace InputCommon {
  30. class InputSubsystem;
  31. }
  32. namespace Ui {
  33. class ConfigureDialog;
  34. }
  35. class ConfigureDialog : public QDialog {
  36. Q_OBJECT
  37. public:
  38. explicit ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_,
  39. InputCommon::InputSubsystem* input_subsystem,
  40. std::vector<VkDeviceInfo::Record>& vk_device_records,
  41. Core::System& system_, bool enable_web_config = true);
  42. ~ConfigureDialog() override;
  43. void ApplyConfiguration();
  44. private slots:
  45. void OnLanguageChanged(const QString& locale);
  46. signals:
  47. void LanguageChanged(const QString& locale);
  48. private:
  49. void changeEvent(QEvent* event) override;
  50. void RetranslateUI();
  51. void HandleApplyButtonClicked();
  52. void SetConfiguration();
  53. void UpdateVisibleTabs();
  54. void PopulateSelectionList();
  55. std::unique_ptr<Ui::ConfigureDialog> ui;
  56. HotkeyRegistry& registry;
  57. Core::System& system;
  58. std::unique_ptr<ConfigurationShared::TranslationMap> translations;
  59. std::unique_ptr<ConfigurationShared::ComboboxTranslationMap> combobox_translations;
  60. std::forward_list<ConfigurationShared::Tab*> tab_group;
  61. std::unique_ptr<ConfigureAudio> audio_tab;
  62. std::unique_ptr<ConfigureCpu> cpu_tab;
  63. std::unique_ptr<ConfigureDebugTab> debug_tab_tab;
  64. std::unique_ptr<ConfigureFilesystem> filesystem_tab;
  65. std::unique_ptr<ConfigureGeneral> general_tab;
  66. std::unique_ptr<ConfigureGraphicsAdvanced> graphics_advanced_tab;
  67. std::unique_ptr<ConfigureGraphics> graphics_tab;
  68. std::unique_ptr<ConfigureHotkeys> hotkeys_tab;
  69. std::unique_ptr<ConfigureInput> input_tab;
  70. std::unique_ptr<ConfigureNetwork> network_tab;
  71. std::unique_ptr<ConfigureProfileManager> profile_tab;
  72. std::unique_ptr<ConfigureSystem> system_tab;
  73. std::unique_ptr<ConfigureUi> ui_tab;
  74. std::unique_ptr<ConfigureWeb> web_tab;
  75. };