configure_dialog.h 2.2 KB

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