1 // Copyright 2020 yuzu Emulator Project
2 // Licensed under GPLv2 or any later version
3 // Refer to the license.txt file included.
4 
5 #pragma once
6 
7 #include <memory>
8 #include <vector>
9 
10 #include <QDialog>
11 #include <QList>
12 
13 #include "core/file_sys/vfs_types.h"
14 #include "yuzu/configuration/config.h"
15 
16 class QGraphicsScene;
17 class QStandardItem;
18 class QStandardItemModel;
19 class QTreeView;
20 class QVBoxLayout;
21 
22 namespace Ui {
23 class ConfigurePerGame;
24 }
25 
26 class ConfigurePerGame : public QDialog {
27     Q_OBJECT
28 
29 public:
30     explicit ConfigurePerGame(QWidget* parent, u64 title_id);
31     ~ConfigurePerGame() override;
32 
33     /// Save all button configurations to settings file
34     void ApplyConfiguration();
35 
36     void LoadFromFile(FileSys::VirtualFile file);
37 
38 private:
39     void changeEvent(QEvent* event) override;
40     void RetranslateUI();
41 
42     void LoadConfiguration();
43 
44     std::unique_ptr<Ui::ConfigurePerGame> ui;
45     FileSys::VirtualFile file;
46     u64 title_id;
47 
48     QGraphicsScene* scene;
49 
50     std::unique_ptr<Config> game_config;
51 };
52