From fc52e4ff4752ea0274bde07df446caa6fa1fd391 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Mon, 30 Oct 2023 00:04:06 -0400 Subject: [PATCH 1/6] Turn from Window -> Dialog --- .../Controls/ApplicationContextMenu.axaml.cs | 4 +- .../UI/Views/Main/MainMenuBarView.axaml.cs | 4 +- src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml | 13 +------ .../UI/Windows/CheatWindow.axaml.cs | 37 ++++++++++++++++--- 4 files changed, 37 insertions(+), 21 deletions(-) diff --git a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs index 0f0071065..397eabe21 100644 --- a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs +++ b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs @@ -118,11 +118,11 @@ public async void OpenCheatManager_Click(object sender, RoutedEventArgs args) if (viewModel?.SelectedApplication != null) { - await new CheatWindow( + await CheatWindow.Show( viewModel.VirtualFileSystem, viewModel.SelectedApplication.TitleId, viewModel.SelectedApplication.TitleName, - viewModel.SelectedApplication.Path).ShowDialog(viewModel.TopLevel as Window); + viewModel.SelectedApplication.Path); } } diff --git a/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs index 9c0e683a0..f56249933 100644 --- a/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs +++ b/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs @@ -170,11 +170,11 @@ public async void OpenCheatManagerForCurrentApp(object sender, RoutedEventArgs e string name = ViewModel.AppHost.Device.Processes.ActiveApplication.ApplicationControlProperties.Title[(int)ViewModel.AppHost.Device.System.State.DesiredTitleLanguage].NameString.ToString(); - await new CheatWindow( + await CheatWindow.Show( Window.VirtualFileSystem, ViewModel.AppHost.Device.Processes.ActiveApplication.ProgramIdText, name, - Window.ViewModel.SelectedApplication.Path).ShowDialog(Window); + Window.ViewModel.SelectedApplication.Path); ViewModel.AppHost.Device.EnableCheats(); } diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml index 57d5f7eff..00047bdac 100644 --- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml +++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml @@ -1,25 +1,16 @@ - - - - @@ -123,4 +114,4 @@ - + diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs index c2de67ab2..c035b2afb 100644 --- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs +++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs @@ -1,5 +1,9 @@ -using Avalonia.Collections; +using Avalonia.Collections; +using Avalonia.Controls; +using Avalonia.Styling; +using FluentAvalonia.UI.Controls; using Ryujinx.Ava.Common.Locale; +using Ryujinx.Ava.UI.Helpers; using Ryujinx.Ava.UI.Models; using Ryujinx.HLE.FileSystem; using Ryujinx.HLE.HOS; @@ -9,10 +13,11 @@ using System.Globalization; using System.IO; using System.Linq; +using System.Threading.Tasks; namespace Ryujinx.Ava.UI.Windows { - public partial class CheatWindow : StyleableWindow + public partial class CheatWindow : UserControl { private readonly string _enabledCheatsPath; public bool NoCheatsFound { get; } @@ -27,8 +32,6 @@ public CheatWindow() DataContext = this; InitializeComponent(); - - Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance[LocaleKeys.CheatWindowTitle]; } public CheatWindow(VirtualFileSystem virtualFileSystem, string titleId, string titleName, string titlePath) @@ -89,8 +92,25 @@ public CheatWindow(VirtualFileSystem virtualFileSystem, string titleId, string t } DataContext = this; + } + + public static async Task Show(VirtualFileSystem virtualFileSystem, string titleId, string titleName, string titlePath) + { + ContentDialog contentDialog = new() + { + PrimaryButtonText = "", + SecondaryButtonText = "", + CloseButtonText = "", + Content = new CheatWindow(virtualFileSystem, titleId, titleName, titlePath), + Title = string.Format(LocaleManager.Instance[LocaleKeys.CheatWindowTitle]), + }; - Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance[LocaleKeys.CheatWindowTitle]; + Style bottomBorder = new(x => x.OfType().Name("DialogSpace").Child().OfType()); + bottomBorder.Setters.Add(new Setter(IsVisibleProperty, false)); + + contentDialog.Styles.Add(bottomBorder); + + await ContentDialogHelper.ShowAsync(contentDialog); } public void Save() @@ -117,7 +137,12 @@ public void Save() File.WriteAllLines(_enabledCheatsPath, enabledCheats); - Close(); + ((ContentDialog)Parent).Hide(); + } + + public void Close() + { + ((ContentDialog)Parent).Hide(); } } } From 793f830ffd10537672265b735d9632345bd68ae1 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Mon, 30 Oct 2023 00:08:09 -0400 Subject: [PATCH 2/6] Match cheats heading to other managers --- src/Ryujinx.Ava/Assets/Locales/en_US.json | 3 +-- src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml | 12 ------------ src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs | 5 +---- 3 files changed, 2 insertions(+), 18 deletions(-) diff --git a/src/Ryujinx.Ava/Assets/Locales/en_US.json b/src/Ryujinx.Ava/Assets/Locales/en_US.json index 72b5e8e3c..c0493c719 100644 --- a/src/Ryujinx.Ava/Assets/Locales/en_US.json +++ b/src/Ryujinx.Ava/Assets/Locales/en_US.json @@ -591,10 +591,9 @@ "SelectDlcDialogTitle": "Select DLC files", "SelectUpdateDialogTitle": "Select update files", "UserProfileWindowTitle": "User Profiles Manager", - "CheatWindowTitle": "Cheats Manager", "DlcWindowTitle": "Manage Downloadable Content for {0} ({1})", "UpdateWindowTitle": "Title Update Manager", - "CheatWindowHeading": "Cheats Available for {0} [{1}]", + "CheatWindowHeading": "Manage Cheats for {0} ({1})", "BuildId": "BuildId:", "DlcWindowHeading": "{0} Downloadable Content(s)", "UserProfilesEditProfile": "Edit Selected", diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml index 00047bdac..b0fbea2e5 100644 --- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml +++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml @@ -23,18 +23,6 @@ - LoadedCheats { get; } - - public string Heading { get; } public string BuildId { get; } public CheatWindow() @@ -38,7 +36,6 @@ public CheatWindow(VirtualFileSystem virtualFileSystem, string titleId, string t { LoadedCheats = new AvaloniaList(); - Heading = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.CheatWindowHeading, titleName, titleId.ToUpper()); BuildId = ApplicationData.GetApplicationBuildId(virtualFileSystem, titlePath); InitializeComponent(); @@ -102,7 +99,7 @@ public static async Task Show(VirtualFileSystem virtualFileSystem, string titleI SecondaryButtonText = "", CloseButtonText = "", Content = new CheatWindow(virtualFileSystem, titleId, titleName, titlePath), - Title = string.Format(LocaleManager.Instance[LocaleKeys.CheatWindowTitle]), + Title = string.Format(LocaleManager.Instance[LocaleKeys.CheatWindowHeading], titleName, titleId.ToUpper()), }; Style bottomBorder = new(x => x.OfType().Name("DialogSpace").Child().OfType()); From 09214d3faf50adf5500b058da017d733c0a145d4 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Mon, 15 Jan 2024 20:48:42 -0500 Subject: [PATCH 3/6] Respect MVVM --- .../Controls/ApplicationContextMenu.axaml.cs | 2 +- .../UI/ViewModels/CheatWindowViewModel.cs | 82 ++++++++++++++ .../UI/Views/Main/MainMenuBarView.axaml.cs | 3 +- src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml | 11 +- .../UI/Windows/CheatWindow.axaml.cs | 106 ++---------------- 5 files changed, 101 insertions(+), 103 deletions(-) create mode 100644 src/Ryujinx.Ava/UI/ViewModels/CheatWindowViewModel.cs diff --git a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs index 397eabe21..248e154af 100644 --- a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs +++ b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs @@ -120,7 +120,7 @@ public async void OpenCheatManager_Click(object sender, RoutedEventArgs args) { await CheatWindow.Show( viewModel.VirtualFileSystem, - viewModel.SelectedApplication.TitleId, + ulong.Parse(viewModel.SelectedApplication.TitleId, NumberStyles.HexNumber), viewModel.SelectedApplication.TitleName, viewModel.SelectedApplication.Path); } diff --git a/src/Ryujinx.Ava/UI/ViewModels/CheatWindowViewModel.cs b/src/Ryujinx.Ava/UI/ViewModels/CheatWindowViewModel.cs new file mode 100644 index 000000000..89b243104 --- /dev/null +++ b/src/Ryujinx.Ava/UI/ViewModels/CheatWindowViewModel.cs @@ -0,0 +1,82 @@ +using Avalonia.Collections; +using Ryujinx.Ava.UI.Models; +using Ryujinx.HLE.FileSystem; +using Ryujinx.HLE.HOS; +using Ryujinx.Ui.App.Common; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace Ryujinx.Ava.UI.ViewModels +{ + public class CheatWindowViewModel : BaseModel + { + private readonly string _enabledCheatsPath; + public AvaloniaList LoadedCheats { get; } = new(); + public string BuildId { get; } + + public CheatWindowViewModel(VirtualFileSystem virtualFileSystem, ulong titleId, string titlePath) + { + BuildId = ApplicationData.GetApplicationBuildId(virtualFileSystem, titlePath); + + string modsBasePath = ModLoader.GetModsBasePath(); + string titleModsPath = ModLoader.GetTitleDir(modsBasePath, titleId.ToString("x16")); + + _enabledCheatsPath = Path.Combine(titleModsPath, "cheats", "enabled.txt"); + + string[] enabled = Array.Empty(); + + if (File.Exists(_enabledCheatsPath)) + { + enabled = File.ReadAllLines(_enabledCheatsPath); + } + + var mods = new ModLoader.ModCache(); + + ModLoader.QueryContentsDir(mods, new DirectoryInfo(Path.Combine(modsBasePath, "contents")), titleId); + + string currentCheatFile = string.Empty; + string buildId = string.Empty; + + CheatNode currentGroup = null; + + foreach (var cheat in mods.Cheats) + { + if (cheat.Path.FullName != currentCheatFile) + { + currentCheatFile = cheat.Path.FullName; + string parentPath = currentCheatFile.Replace(titleModsPath, ""); + + buildId = Path.GetFileNameWithoutExtension(currentCheatFile).ToUpper(); + currentGroup = new CheatNode("", buildId, parentPath, true); + + LoadedCheats.Add(currentGroup); + } + + var model = new CheatNode(cheat.Name, buildId, "", false, enabled.Contains($"{buildId}-{cheat.Name}")); + currentGroup?.SubNodes.Add(model); + } + } + + public void Save() + { + List enabledCheats = new(); + + foreach (var cheats in LoadedCheats) + { + foreach (var cheat in cheats.SubNodes) + { + if (cheat.IsEnabled) + { + enabledCheats.Add(cheat.BuildIdKey); + } + } + } + + Directory.CreateDirectory(Path.GetDirectoryName(_enabledCheatsPath)); + + File.WriteAllLines(_enabledCheatsPath, enabledCheats); + } + } +} diff --git a/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs index f56249933..439c6fcc6 100644 --- a/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs +++ b/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs @@ -15,6 +15,7 @@ using Ryujinx.Ui.Common.Helper; using System; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; @@ -172,7 +173,7 @@ public async void OpenCheatManagerForCurrentApp(object sender, RoutedEventArgs e await CheatWindow.Show( Window.VirtualFileSystem, - ViewModel.AppHost.Device.Processes.ActiveApplication.ProgramIdText, + ulong.Parse(ViewModel.AppHost.Device.Processes.ActiveApplication.ProgramIdText, NumberStyles.HexNumber), name, Window.ViewModel.SelectedApplication.Path); diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml index b0fbea2e5..a0290ebe9 100644 --- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml +++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml @@ -5,10 +5,10 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:window="clr-namespace:Ryujinx.Ava.UI.Windows" + xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels" Width="500" - Height="500" - x:DataType="window:CheatWindow" + Height="380" + x:DataType="viewModels:CheatWindowViewModel" mc:Ignorable="d" Focusable="True"> @@ -88,15 +88,14 @@ Name="SaveButton" MinWidth="90" Margin="5" - Command="{Binding Save}" - IsVisible="{Binding !NoCheatsFound}"> + Click="SaveAndClose"> diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs index c282aebf0..ac59f0d92 100644 --- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs +++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs @@ -1,29 +1,18 @@ -using Avalonia.Collections; -using Avalonia.Controls; +using Avalonia.Controls; +using Avalonia.Interactivity; using Avalonia.Styling; using FluentAvalonia.UI.Controls; using Ryujinx.Ava.Common.Locale; using Ryujinx.Ava.UI.Helpers; -using Ryujinx.Ava.UI.Models; +using Ryujinx.Ava.UI.ViewModels; using Ryujinx.HLE.FileSystem; -using Ryujinx.HLE.HOS; -using Ryujinx.Ui.App.Common; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; using System.Threading.Tasks; namespace Ryujinx.Ava.UI.Windows { public partial class CheatWindow : UserControl { - private readonly string _enabledCheatsPath; - public bool NoCheatsFound { get; } - - public AvaloniaList LoadedCheats { get; } - public string BuildId { get; } + public CheatWindowViewModel ViewModel; public CheatWindow() { @@ -32,66 +21,14 @@ public CheatWindow() InitializeComponent(); } - public CheatWindow(VirtualFileSystem virtualFileSystem, string titleId, string titleName, string titlePath) + public CheatWindow(VirtualFileSystem virtualFileSystem, ulong titleId, string titleName, string titlePath) { - LoadedCheats = new AvaloniaList(); - - BuildId = ApplicationData.GetApplicationBuildId(virtualFileSystem, titlePath); + DataContext = ViewModel = new CheatWindowViewModel(virtualFileSystem, titleId, titlePath); InitializeComponent(); - - string modsBasePath = ModLoader.GetModsBasePath(); - string titleModsPath = ModLoader.GetTitleDir(modsBasePath, titleId); - ulong titleIdValue = ulong.Parse(titleId, NumberStyles.HexNumber); - - _enabledCheatsPath = Path.Combine(titleModsPath, "cheats", "enabled.txt"); - - string[] enabled = Array.Empty(); - - if (File.Exists(_enabledCheatsPath)) - { - enabled = File.ReadAllLines(_enabledCheatsPath); - } - - int cheatAdded = 0; - - var mods = new ModLoader.ModCache(); - - ModLoader.QueryContentsDir(mods, new DirectoryInfo(Path.Combine(modsBasePath, "contents")), titleIdValue); - - string currentCheatFile = string.Empty; - string buildId = string.Empty; - - CheatNode currentGroup = null; - - foreach (var cheat in mods.Cheats) - { - if (cheat.Path.FullName != currentCheatFile) - { - currentCheatFile = cheat.Path.FullName; - string parentPath = currentCheatFile.Replace(titleModsPath, ""); - - buildId = Path.GetFileNameWithoutExtension(currentCheatFile).ToUpper(); - currentGroup = new CheatNode("", buildId, parentPath, true); - - LoadedCheats.Add(currentGroup); - } - - var model = new CheatNode(cheat.Name, buildId, "", false, enabled.Contains($"{buildId}-{cheat.Name}")); - currentGroup?.SubNodes.Add(model); - - cheatAdded++; - } - - if (cheatAdded == 0) - { - NoCheatsFound = true; - } - - DataContext = this; } - public static async Task Show(VirtualFileSystem virtualFileSystem, string titleId, string titleName, string titlePath) + public static async Task Show(VirtualFileSystem virtualFileSystem, ulong titleId, string titleName, string titlePath) { ContentDialog contentDialog = new() { @@ -99,7 +36,7 @@ public static async Task Show(VirtualFileSystem virtualFileSystem, string titleI SecondaryButtonText = "", CloseButtonText = "", Content = new CheatWindow(virtualFileSystem, titleId, titleName, titlePath), - Title = string.Format(LocaleManager.Instance[LocaleKeys.CheatWindowHeading], titleName, titleId.ToUpper()), + Title = string.Format(LocaleManager.Instance[LocaleKeys.CheatWindowHeading], titleName, titleId.ToString("X16")), }; Style bottomBorder = new(x => x.OfType().Name("DialogSpace").Child().OfType()); @@ -110,34 +47,13 @@ public static async Task Show(VirtualFileSystem virtualFileSystem, string titleI await ContentDialogHelper.ShowAsync(contentDialog); } - public void Save() + private void SaveAndClose(object sender, RoutedEventArgs e) { - if (NoCheatsFound) - { - return; - } - - List enabledCheats = new(); - - foreach (var cheats in LoadedCheats) - { - foreach (var cheat in cheats.SubNodes) - { - if (cheat.IsEnabled) - { - enabledCheats.Add(cheat.BuildIdKey); - } - } - } - - Directory.CreateDirectory(Path.GetDirectoryName(_enabledCheatsPath)); - - File.WriteAllLines(_enabledCheatsPath, enabledCheats); - + ViewModel.Save(); ((ContentDialog)Parent).Hide(); } - public void Close() + private void Close(object sender, RoutedEventArgs e) { ((ContentDialog)Parent).Hide(); } From a665f92127fcbb165faddf69bdd37ae6c50b2a16 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Mon, 30 Oct 2023 00:42:05 -0400 Subject: [PATCH 4/6] initial Layout --- src/Ryujinx.Ava/Assets/Locales/en_US.json | 2 +- .../UI/ViewModels/CheatWindowViewModel.cs | 10 ++ src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml | 106 +++++++++++------- 3 files changed, 75 insertions(+), 43 deletions(-) diff --git a/src/Ryujinx.Ava/Assets/Locales/en_US.json b/src/Ryujinx.Ava/Assets/Locales/en_US.json index c0493c719..75327185a 100644 --- a/src/Ryujinx.Ava/Assets/Locales/en_US.json +++ b/src/Ryujinx.Ava/Assets/Locales/en_US.json @@ -594,7 +594,7 @@ "DlcWindowTitle": "Manage Downloadable Content for {0} ({1})", "UpdateWindowTitle": "Title Update Manager", "CheatWindowHeading": "Manage Cheats for {0} ({1})", - "BuildId": "BuildId:", + "BuildId": "Build ID:", "DlcWindowHeading": "{0} Downloadable Content(s)", "UserProfilesEditProfile": "Edit Selected", "Cancel": "Cancel", diff --git a/src/Ryujinx.Ava/UI/ViewModels/CheatWindowViewModel.cs b/src/Ryujinx.Ava/UI/ViewModels/CheatWindowViewModel.cs index 89b243104..d7de58bb2 100644 --- a/src/Ryujinx.Ava/UI/ViewModels/CheatWindowViewModel.cs +++ b/src/Ryujinx.Ava/UI/ViewModels/CheatWindowViewModel.cs @@ -1,4 +1,6 @@ +using Avalonia; using Avalonia.Collections; +using Avalonia.Controls.ApplicationLifetimes; using Ryujinx.Ava.UI.Models; using Ryujinx.HLE.FileSystem; using Ryujinx.HLE.HOS; @@ -59,6 +61,14 @@ public CheatWindowViewModel(VirtualFileSystem virtualFileSystem, ulong titleId, } } + public async void CopyToClipboard() + { + if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + await desktop.MainWindow.Clipboard.SetTextAsync(BuildId); + } + } + public void Save() { List enabledCheats = new(); diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml index a0290ebe9..f75e8a8bf 100644 --- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml +++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml @@ -11,50 +11,53 @@ x:DataType="viewModels:CheatWindowViewModel" mc:Ignorable="d" Focusable="True"> - + - - - - - - - - + + + + + + + + + + + + + + BorderBrush="{DynamicResource AppListHoverBackgroundColor}" + BorderThickness="1" + CornerRadius="5" + Padding="2.5"> @@ -77,13 +80,32 @@ - - + + + + + - - + + From d4622c5f6aff847f4b6b7a9dbfa9608cbeeea040 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Mon, 30 Oct 2023 00:46:48 -0400 Subject: [PATCH 5/6] Tweak layout --- src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml index f75e8a8bf..21c7c8013 100644 --- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml +++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml @@ -24,6 +24,7 @@ + + Text="" /> Date: Mon, 15 Jan 2024 20:51:07 -0500 Subject: [PATCH 6/6] Format --- src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs index ac59f0d92..0cb7b8b22 100644 --- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs +++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs @@ -1,4 +1,4 @@ -using Avalonia.Controls; +using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Styling; using FluentAvalonia.UI.Controls;