From 0c0c7432f13191b58ef08662428815c73f7e5fc9 Mon Sep 17 00:00:00 2001 From: Judas Drekonym Date: Mon, 20 Jan 2025 21:52:08 -0500 Subject: [PATCH] Add Title ID sort method - Using existing TitleId constant in ApplicationSort - Reuses the "DlcManagerTableHeadingTitleIdLabel" locale for fulfilling the need already, might not be optimal to do so in the long run but I wanted to make this as unobtrusive as possible - Using app.Id for the comparer seems to work fine, not sure if using something else like IdString would be better? --- src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs | 3 +++ src/Ryujinx/UI/Views/Main/MainViewControls.axaml | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index f88ed65d0..8193c323b 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -624,6 +624,7 @@ namespace Ryujinx.Ava.UI.ViewModels ApplicationSort.FileSize => LocaleManager.Instance[LocaleKeys.GameListHeaderFileSize], ApplicationSort.Path => LocaleManager.Instance[LocaleKeys.GameListHeaderPath], ApplicationSort.Favorite => LocaleManager.Instance[LocaleKeys.CommonFavorite], + ApplicationSort.TitleId => LocaleManager.Instance[LocaleKeys.DlcManagerTableHeadingTitleIdLabel], _ => string.Empty, }; } @@ -694,6 +695,7 @@ namespace Ryujinx.Ava.UI.ViewModels public IHostUIHandler UiHandler { get; internal set; } public bool IsSortedByFavorite => SortMode == ApplicationSort.Favorite; public bool IsSortedByTitle => SortMode == ApplicationSort.Title; + public bool IsSortedByTitleId => SortMode == ApplicationSort.TitleId; public bool IsSortedByDeveloper => SortMode == ApplicationSort.Developer; public bool IsSortedByLastPlayed => SortMode == ApplicationSort.LastPlayed; public bool IsSortedByTimePlayed => SortMode == ApplicationSort.TotalTimePlayed; @@ -726,6 +728,7 @@ namespace Ryujinx.Ava.UI.ViewModels ApplicationSort.FileSize => CreateComparer(IsAscending, app => app.FileSize), ApplicationSort.Path => CreateComparer(IsAscending, app => app.Path), ApplicationSort.Favorite => CreateComparer(IsAscending, app => new AppListFavoriteComparable(app)), + ApplicationSort.TitleId => CreateComparer(IsAscending, app => app.Id), _ => null, #pragma warning restore IDE0055 }; diff --git a/src/Ryujinx/UI/Views/Main/MainViewControls.axaml b/src/Ryujinx/UI/Views/Main/MainViewControls.axaml index 1c6895db1..cdc66a138 100644 --- a/src/Ryujinx/UI/Views/Main/MainViewControls.axaml +++ b/src/Ryujinx/UI/Views/Main/MainViewControls.axaml @@ -105,6 +105,12 @@ GroupName="Sort" IsChecked="{Binding IsSortedByTitle, Mode=OneTime}" Tag="Title" /> +