diff --git a/src/citron/configuration/configure_per_game.h b/src/citron/configuration/configure_per_game.h index 5e726d401..3591347fb 100644 --- a/src/citron/configuration/configure_per_game.h +++ b/src/citron/configuration/configure_per_game.h @@ -1,4 +1,5 @@ // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 citron Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -19,11 +20,11 @@ #include "citron/configuration/shared_translation.h" namespace Core { -class System; + class System; } namespace InputCommon { -class InputSubsystem; + class InputSubsystem; } class ConfigurePerGameAddons; @@ -40,9 +41,10 @@ class QStandardItem; class QStandardItemModel; class QTreeView; class QVBoxLayout; +class QTimer; // Forward declaration for the timer namespace Ui { -class ConfigurePerGame; + class ConfigurePerGame; } class ConfigurePerGame : public QDialog { @@ -55,25 +57,27 @@ public: Core::System& system_); ~ConfigurePerGame() override; - /// Save all button configurations to settings file void ApplyConfiguration(); - void LoadFromFile(FileSys::VirtualFile file_); +public slots: + void accept() override; + private: void changeEvent(QEvent* event) override; void RetranslateUI(); - void HandleApplyButtonClicked(); - void LoadConfiguration(); + // New, efficient theme update functions + void ApplyStaticTheme(); + void UpdateTheme(); + std::unique_ptr ui; FileSys::VirtualFile file; u64 title_id; QGraphicsScene* scene; - std::unique_ptr game_config; Core::System& system; @@ -88,4 +92,7 @@ private: std::unique_ptr input_tab; std::unique_ptr linux_tab; std::unique_ptr system_tab; + + QTimer* rainbow_timer; + float rainbow_hue = 0.0f; };