aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ava/UI
diff options
context:
space:
mode:
authorgnisman <gleb.nisman@gmail.com>2023-05-07 17:36:44 +0300
committerGitHub <noreply@github.com>2023-05-07 14:36:44 +0000
commitdde208b480f3e2aeb0e3abc15857d031ceb22bf4 (patch)
treea1678181c7a0454bfeaa557457e3e3d0b07703a3 /src/Ryujinx.Ava/UI
parent4c3d2d5d75c46a522d55c0a3ae6820255294517c (diff)
UI: Expose games build ID for cheat management (#4340)
* Ava UI: Expose games build ID for cheat management * Fix bad merge * Change integrity check level to error on invalid * Add support for GDK * Remove whitespace * Add BID identifier * PR Comments fix * Restore title id in cheats GTK window * use halign center instead of margin_left * Merge * fix after merge * PR comments fix - design AVA * PR fix - Move GetApplicationBuildId to ApplicationData class * PR comment fix - Add empty line before method * Align with PR #4755 * PR comments fix * Change BuildId label to support translation * Comments fix * Remove unused BuildIdLabel property
Diffstat (limited to 'src/Ryujinx.Ava/UI')
-rw-r--r--src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs7
-rw-r--r--src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs7
-rw-r--r--src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml37
-rw-r--r--src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs10
4 files changed, 53 insertions, 8 deletions
diff --git a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs
index 90c72e02..a9269386 100644
--- a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs
+++ b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs
@@ -10,6 +10,7 @@ using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common.Configuration;
+using Ryujinx.Ui.App.Common;
using Ryujinx.HLE.HOS;
using Ryujinx.Ui.Common.Helper;
using System;
@@ -118,7 +119,11 @@ namespace Ryujinx.Ava.UI.Controls
if (viewModel?.SelectedApplication != null)
{
- await new CheatWindow(viewModel.VirtualFileSystem, viewModel.SelectedApplication.TitleId, viewModel.SelectedApplication.TitleName).ShowDialog(viewModel.TopLevel as Window);
+ await new CheatWindow(
+ viewModel.VirtualFileSystem,
+ viewModel.SelectedApplication.TitleId,
+ viewModel.SelectedApplication.TitleName,
+ viewModel.SelectedApplication.Path).ShowDialog(viewModel.TopLevel as Window);
}
}
diff --git a/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs
index bdf2cf9f..557528eb 100644
--- a/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs
+++ b/src/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs
@@ -11,6 +11,7 @@ using Ryujinx.Common;
using Ryujinx.Common.Utilities;
using Ryujinx.HLE.HOS;
using Ryujinx.Modules;
+using Ryujinx.Ui.App.Common;
using Ryujinx.Ui.Common;
using Ryujinx.Ui.Common.Configuration;
using Ryujinx.Ui.Common.Helper;
@@ -176,7 +177,11 @@ namespace Ryujinx.Ava.UI.Views.Main
string name = ViewModel.AppHost.Device.Processes.ActiveApplication.ApplicationControlProperties.Title[(int)ViewModel.AppHost.Device.System.State.DesiredTitleLanguage].NameString.ToString();
- await new CheatWindow(Window.VirtualFileSystem, ViewModel.AppHost.Device.Processes.ActiveApplication.ProgramIdText, name).ShowDialog(Window);
+ await new CheatWindow(
+ Window.VirtualFileSystem,
+ ViewModel.AppHost.Device.Processes.ActiveApplication.ProgramIdText,
+ name,
+ Window.ViewModel.SelectedApplication.Path).ShowDialog(Window);
ViewModel.AppHost.Device.EnableCheats();
}
diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml
index 3557ed69..11e86211 100644
--- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml
+++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml
@@ -23,21 +23,50 @@
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="*" />
+ <ColumnDefinition Width="*" />
+ </Grid.ColumnDefinitions>
<TextBlock
Grid.Row="1"
+ Grid.Column="0"
+ Grid.ColumnSpan="2"
MaxWidth="500"
- Margin="20,15,20,20"
+ Margin="20,15,20,5"
HorizontalAlignment="Center"
VerticalAlignment="Center"
LineHeight="18"
Text="{Binding Heading}"
TextAlignment="Center"
TextWrapping="Wrap" />
- <Border
+ <TextBlock
+ Grid.Row="2"
+ Grid.Column="0"
+ MaxWidth="500"
+ Margin="140,15,20,5"
+ HorizontalAlignment="Center"
+ VerticalAlignment="Center"
+ LineHeight="30"
+ Text="{locale:Locale BuildId}"
+ TextAlignment="Center"
+ TextWrapping="Wrap" />
+ <TextBox
Grid.Row="2"
+ Grid.Column="1"
+ Margin="0,5,110,5"
+ MinWidth="160"
+ HorizontalAlignment="Center"
+ VerticalAlignment="Center"
+ Text="{Binding BuildId}"
+ IsReadOnly="True" />
+ <Border
+ Grid.Row="3"
+ Grid.Column="0"
+ Grid.ColumnSpan="2"
Margin="5"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
@@ -81,7 +110,9 @@
</TreeView>
</Border>
<DockPanel
- Grid.Row="3"
+ Grid.Row="4"
+ Grid.Column="0"
+ Grid.ColumnSpan="2"
Margin="0"
HorizontalAlignment="Stretch">
<DockPanel Margin="0" HorizontalAlignment="Right">
diff --git a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs
index 241a6c34..f5bba7d2 100644
--- a/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs
+++ b/src/Ryujinx.Ava/UI/Windows/CheatWindow.axaml.cs
@@ -1,8 +1,10 @@
-using Avalonia.Collections;
+using Avalonia;
+using Avalonia.Collections;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.UI.Models;
using Ryujinx.HLE.FileSystem;
using Ryujinx.HLE.HOS;
+using Ryujinx.Ui.App.Common;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -17,6 +19,7 @@ namespace Ryujinx.Ava.UI.Windows
private AvaloniaList<CheatsList> LoadedCheats { get; }
public string Heading { get; }
+ public string BuildId { get; }
public CheatWindow()
{
@@ -27,12 +30,13 @@ namespace Ryujinx.Ava.UI.Windows
Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance[LocaleKeys.CheatWindowTitle];
}
- public CheatWindow(VirtualFileSystem virtualFileSystem, string titleId, string titleName)
+ public CheatWindow(VirtualFileSystem virtualFileSystem, string titleId, string titleName, string titlePath)
{
LoadedCheats = new AvaloniaList<CheatsList>();
Heading = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.CheatWindowHeading, titleName, titleId.ToUpper());
-
+ BuildId = ApplicationData.GetApplicationBuildId(virtualFileSystem, titlePath);
+
InitializeComponent();
string modsBasePath = ModLoader.GetModsBasePath();