diff options
Diffstat (limited to 'src/citron/configuration/configure_per_game.h')
-rw-r--r-- | src/citron/configuration/configure_per_game.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/src/citron/configuration/configure_per_game.h b/src/citron/configuration/configure_per_game.h new file mode 100644 index 000000000..196cb32e6 --- /dev/null +++ b/src/citron/configuration/configure_per_game.h @@ -0,0 +1,91 @@ +// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <memory> +#include <string> +#include <vector> + +#include <QDialog> +#include <QList> + +#include "configuration/shared_widget.h" +#include "core/file_sys/vfs/vfs_types.h" +#include "frontend_common/config.h" +#include "vk_device_info.h" +#include "yuzu/configuration/configuration_shared.h" +#include "yuzu/configuration/qt_config.h" +#include "yuzu/configuration/shared_translation.h" + +namespace Core { +class System; +} + +namespace InputCommon { +class InputSubsystem; +} + +class ConfigurePerGameAddons; +class ConfigureAudio; +class ConfigureCpu; +class ConfigureGraphics; +class ConfigureGraphicsAdvanced; +class ConfigureInputPerGame; +class ConfigureLinuxTab; +class ConfigureSystem; + +class QGraphicsScene; +class QStandardItem; +class QStandardItemModel; +class QTreeView; +class QVBoxLayout; + +namespace Ui { +class ConfigurePerGame; +} + +class ConfigurePerGame : public QDialog { + Q_OBJECT + +public: + // Cannot use std::filesystem::path due to https://bugreports.qt.io/browse/QTBUG-73263 + explicit ConfigurePerGame(QWidget* parent, u64 title_id_, const std::string& file_name, + std::vector<VkDeviceInfo::Record>& vk_device_records, + Core::System& system_); + ~ConfigurePerGame() override; + + /// Save all button configurations to settings file + void ApplyConfiguration(); + + void LoadFromFile(FileSys::VirtualFile file_); + +private: + void changeEvent(QEvent* event) override; + void RetranslateUI(); + + void HandleApplyButtonClicked(); + + void LoadConfiguration(); + + std::unique_ptr<Ui::ConfigurePerGame> ui; + FileSys::VirtualFile file; + u64 title_id; + + QGraphicsScene* scene; + + std::unique_ptr<QtConfig> game_config; + + Core::System& system; + std::unique_ptr<ConfigurationShared::Builder> builder; + std::shared_ptr<std::vector<ConfigurationShared::Tab*>> tab_group; + + std::unique_ptr<ConfigurePerGameAddons> addons_tab; + std::unique_ptr<ConfigureAudio> audio_tab; + std::unique_ptr<ConfigureCpu> cpu_tab; + std::unique_ptr<ConfigureGraphicsAdvanced> graphics_advanced_tab; + std::unique_ptr<ConfigureGraphics> graphics_tab; + std::unique_ptr<ConfigureInputPerGame> input_tab; + std::unique_ptr<ConfigureLinuxTab> linux_tab; + std::unique_ptr<ConfigureSystem> system_tab; +}; |