configure_dialog.h 2.1 KB

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