From ae163606857caef6379cef4bf568d537f4e9ae9a Mon Sep 17 00:00:00 2001 From: Vova Date: Sat, 8 Feb 2025 22:27:38 +1000 Subject: [PATCH] Code cleaning --- src/Ryujinx/AppHost.cs | 2 - .../Controls/ApplicationContextMenu.axaml.cs | 2 - .../UI/Controls/ApplicationListView.axaml.cs | 1 - .../UI/ViewModels/MainWindowViewModel.cs | 1 - .../UI/ViewModels/SettingsViewModel.cs | 62 +++++-------------- .../UI/Views/Main/MainMenuBarView.axaml.cs | 5 +- .../AppLibrary/ApplicationLibrary.cs | 2 +- .../ConfigurationState.Migration.cs | 2 +- 8 files changed, 19 insertions(+), 58 deletions(-) diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs index 98c0771e1..62a1aff7d 100644 --- a/src/Ryujinx/AppHost.cs +++ b/src/Ryujinx/AppHost.cs @@ -469,8 +469,6 @@ namespace Ryujinx.Ava _viewModel.IsGameRunning = true; - - Dispatcher.UIThread.InvokeAsync(() => { _viewModel.Title = TitleHelper.ActiveApplicationTitle(Device.Processes.ActiveApplication, Program.Version, !ConfigurationState.Instance.ShowTitleBar); diff --git a/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml.cs b/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml.cs index 7c5a0cea5..63ccda468 100644 --- a/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml.cs +++ b/src/Ryujinx/UI/Controls/ApplicationContextMenu.axaml.cs @@ -13,7 +13,6 @@ using Ryujinx.Ava.UI.Windows; using Ryujinx.Ava.Utilities; using Ryujinx.Ava.Utilities.AppLibrary; using Ryujinx.Ava.Utilities.Compat; -using Ryujinx.Common; using Ryujinx.Common.Configuration; using Ryujinx.Common.Helper; using Ryujinx.HLE.HOS; @@ -399,7 +398,6 @@ namespace Ryujinx.Ava.UI.Controls viewModel.RefreshView(); } - } public async void OpenApplicationCompatibility_Click(object sender, RoutedEventArgs args) diff --git a/src/Ryujinx/UI/Controls/ApplicationListView.axaml.cs b/src/Ryujinx/UI/Controls/ApplicationListView.axaml.cs index a103d43b0..7c6b0cf15 100644 --- a/src/Ryujinx/UI/Controls/ApplicationListView.axaml.cs +++ b/src/Ryujinx/UI/Controls/ApplicationListView.axaml.cs @@ -4,7 +4,6 @@ using Avalonia.Input.Platform; using Avalonia.Interactivity; using Ryujinx.Ava.UI.Helpers; using Ryujinx.Ava.UI.ViewModels; -using Ryujinx.Ava.UI.Windows; using Ryujinx.Ava.Utilities.AppLibrary; using Ryujinx.Ava.Utilities.Compat; using System; diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index 02016166b..4246a57a3 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -7,7 +7,6 @@ using Avalonia.Media.Imaging; using Avalonia.Platform.Storage; using Avalonia.Threading; using CommunityToolkit.Mvvm.ComponentModel; -using DiscordRPC; using DynamicData; using DynamicData.Binding; using FluentAvalonia.UI.Controls; diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs index 2bbc66cb4..5305a3f72 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs @@ -4,6 +4,7 @@ using Avalonia.Media.Imaging; using Avalonia.Threading; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; +using Humanizer; using LibHac.Tools.FsSystem; using Ryujinx.Audio.Backends.OpenAL; using Ryujinx.Audio.Backends.SDL2; @@ -384,7 +385,13 @@ namespace Ryujinx.Ava.UI.ViewModels } } - public SettingsViewModel(VirtualFileSystem virtualFileSystem, ContentManager contentManager, string gamePath, string gameName, string gameId, byte[] gameIconData, bool userDirFind) : this(userDirFind) + public SettingsViewModel(VirtualFileSystem virtualFileSystem, + ContentManager contentManager, + string gamePath, + string gameName, + string gameId, + byte[] gameIconData, + bool enableToLoadCustomConfig) : this(enableToLoadCustomConfig) { _virtualFileSystem = virtualFileSystem; _contentManager = contentManager; @@ -400,7 +407,7 @@ namespace Ryujinx.Ava.UI.ViewModels GameTitle = gameName; GameId = gameId; - if (userDirFind) + if (enableToLoadCustomConfig) // During the game. If there is no user config, then load the global config window { string gameDir = Program.GetDirGameUserConfig(gameId, false, true); if (ConfigurationFileFormat.TryLoad(gameDir, out ConfigurationFileFormat configurationFileFormat)) @@ -435,7 +442,7 @@ namespace Ryujinx.Ava.UI.ViewModels { Task.Run(LoadAvailableGpus); - if (!noLoadGlobalConfig) + if (!noLoadGlobalConfig)// Default is false, but loading custom config avoids double call { LoadCurrentConfiguration(); } @@ -548,7 +555,6 @@ namespace Ryujinx.Ava.UI.ViewModels public void LoadCurrentConfiguration() { ConfigurationState config = ConfigurationState.Instance; - bool userconfigIsNull = string.IsNullOrEmpty(GameId); //It is necessary that the data is used from the global configuration file if (string.IsNullOrEmpty(GameId)) @@ -654,47 +660,7 @@ namespace Ryujinx.Ava.UI.ViewModels LdnPassphrase = config.Multiplayer.LdnPassphrase; LdnServer = config.Multiplayer.LdnServer; } - - public void SaveSettings2() - { - ConfigurationState config = ConfigurationState.Instance; - - // User Interface - config.EnableDiscordIntegration.Value = EnableDiscordIntegration; - config.CheckUpdatesOnStart.Value = CheckUpdatesOnStart; - config.ShowConfirmExit.Value = ShowConfirmExit; - config.RememberWindowState.Value = RememberWindowState; - config.ShowTitleBar.Value = ShowTitleBar; - config.HideCursor.Value = (HideCursorMode)HideCursor; - - if (GameDirectoryChanged) - { - config.UI.GameDirs.Value = [.. GameDirectories]; - } - - if (AutoloadDirectoryChanged) - { - config.UI.AutoloadDirs.Value = [.. AutoloadDirectories]; - } - - config.UI.BaseStyle.Value = BaseStyleIndex switch - { - 0 => "Auto", - 1 => "Light", - 2 => "Dark", - _ => "Auto" - }; - - if (!string.IsNullOrEmpty(GameId)) - { - config.ToFileFormat().SaveConfig(Program.ConfigurationPath); - } - else - { - config.ToFileFormat().SaveConfig(Program.ConfigurationPath); - } - } - + public void SaveSettings() { ConfigurationState config = ConfigurationState.Instance; @@ -735,8 +701,7 @@ namespace Ryujinx.Ava.UI.ViewModels config.Hid.EnableMouse.Value = EnableMouse; // Keyboard Hotkeys - config.Hid.Hotkeys.Value = userConfigFile ? KeyboardHotkey.GetConfig() : config.Hid.Hotkeys.Value; - + config.Hid.Hotkeys.Value = KeyboardHotkey.GetConfig(); // System config.System.Region.Value = (Region)Region; @@ -859,6 +824,7 @@ namespace Ryujinx.Ava.UI.ViewModels { File.Delete(gameDir); } + RevertIfNotSaved(); CloseWindow?.Invoke(); } @@ -866,7 +832,7 @@ namespace Ryujinx.Ava.UI.ViewModels public void SaveUserConfig() { SaveSettings(); - RevertIfNotSaved(); + RevertIfNotSaved(); // Revert global configuration after saving user configuration CloseWindow?.Invoke(); } diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs index 8e8301ea4..4db662f0a 100644 --- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs +++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs @@ -135,7 +135,7 @@ namespace Ryujinx.Ava.UI.Views.Main Rainbow.Enable(); - if (ViewModel.SelectedApplication is null) + if (ViewModel.SelectedApplication is null) // Checks if game data exists { await Window.SettingsWindow.ShowDialog(Window); } @@ -145,10 +145,11 @@ namespace Ryujinx.Ava.UI.Views.Main if (!ViewModel.IsGameRunning || !userConfigExist) { - await Window.SettingsWindow.ShowDialog(Window); + await Window.SettingsWindow.ShowDialog(Window); // The game is not running, or if the user configuration does not exist } else { + // If there is a custom configuration in the folder await new UserConfigWindows(ViewModel, userConfigExist).ShowDialog((Window)ViewModel.TopLevel); } } diff --git a/src/Ryujinx/Utilities/AppLibrary/ApplicationLibrary.cs b/src/Ryujinx/Utilities/AppLibrary/ApplicationLibrary.cs index 05abcdf8d..ac402a00e 100644 --- a/src/Ryujinx/Utilities/AppLibrary/ApplicationLibrary.cs +++ b/src/Ryujinx/Utilities/AppLibrary/ApplicationLibrary.cs @@ -533,7 +533,7 @@ namespace Ryujinx.Ava.Utilities.AppLibrary data.Favorite = appMetadata.Favorite; data.TimePlayed = appMetadata.TimePlayed; data.LastPlayed = appMetadata.LastPlayed; - data.UserConfig = File.Exists(Program.GetDirGameUserConfig(data.IdBaseString, false, false)); // just check for file presence + data.UserConfig = File.Exists(Program.GetDirGameUserConfig(data.IdBaseString, false, false)); // Just check user config } data.FileExtension = Path.GetExtension(applicationPath).TrimStart('.').ToUpper(); diff --git a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs index 9fb56d03f..8a1b03853 100644 --- a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs +++ b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs @@ -145,7 +145,7 @@ namespace Ryujinx.Ava.Utilities.Configuration Hid.EnableKeyboard.Value = cff.EnableKeyboard; Hid.EnableMouse.Value = cff.EnableMouse; - Hid.Hotkeys.Value = LoadSetting ? cff.Hotkeys: Hid.Hotkeys.Value; // Get from global config only + Hid.Hotkeys.Value = LoadSetting ? cff.Hotkeys : Hid.Hotkeys.Value; // Get from global config only Hid.InputConfig.Value = cff.InputConfig ?? []; Hid.RainbowSpeed.Value = cff.RainbowSpeed;