configure_per_game.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <memory>
  5. #include <string>
  6. #include <QDialog>
  7. #include <QList>
  8. #include "core/file_sys/vfs_types.h"
  9. #include "yuzu/configuration/config.h"
  10. namespace Core {
  11. class System;
  12. }
  13. class ConfigurePerGameAddons;
  14. class ConfigureAudio;
  15. class ConfigureCpu;
  16. class ConfigureGeneral;
  17. class ConfigureGraphics;
  18. class ConfigureGraphicsAdvanced;
  19. class ConfigureSystem;
  20. class QGraphicsScene;
  21. class QStandardItem;
  22. class QStandardItemModel;
  23. class QTreeView;
  24. class QVBoxLayout;
  25. namespace Ui {
  26. class ConfigurePerGame;
  27. }
  28. class ConfigurePerGame : public QDialog {
  29. Q_OBJECT
  30. public:
  31. // Cannot use std::filesystem::path due to https://bugreports.qt.io/browse/QTBUG-73263
  32. explicit ConfigurePerGame(QWidget* parent, u64 title_id_, const std::string& file_name,
  33. Core::System& system_);
  34. ~ConfigurePerGame() override;
  35. /// Save all button configurations to settings file
  36. void ApplyConfiguration();
  37. void LoadFromFile(FileSys::VirtualFile file_);
  38. private:
  39. void changeEvent(QEvent* event) override;
  40. void RetranslateUI();
  41. void HandleApplyButtonClicked();
  42. void LoadConfiguration();
  43. std::unique_ptr<Ui::ConfigurePerGame> ui;
  44. FileSys::VirtualFile file;
  45. u64 title_id;
  46. QGraphicsScene* scene;
  47. std::unique_ptr<Config> game_config;
  48. Core::System& system;
  49. std::unique_ptr<ConfigurePerGameAddons> addons_tab;
  50. std::unique_ptr<ConfigureAudio> audio_tab;
  51. std::unique_ptr<ConfigureCpu> cpu_tab;
  52. std::unique_ptr<ConfigureGeneral> general_tab;
  53. std::unique_ptr<ConfigureGraphics> graphics_tab;
  54. std::unique_ptr<ConfigureGraphicsAdvanced> graphics_advanced_tab;
  55. std::unique_ptr<ConfigureSystem> system_tab;
  56. };