mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-03-15 06:54:47 +00:00
misc: chore: add/remove event handler as window is opened/closed
This commit is contained in:
parent
25cc9b24b4
commit
551d2c1134
2 changed files with 25 additions and 8 deletions
|
@ -1,14 +1,15 @@
|
||||||
using Gommon;
|
using Gommon;
|
||||||
using Ryujinx.Ava.Systems;
|
using Ryujinx.Ava.Systems;
|
||||||
using Ryujinx.Ava.Systems.AppLibrary;
|
using Ryujinx.Ava.Systems.AppLibrary;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.ViewModels
|
namespace Ryujinx.Ava.UI.ViewModels
|
||||||
{
|
{
|
||||||
public class CompatibilityViewModel : BaseModel
|
public class CompatibilityViewModel : BaseModel, IDisposable
|
||||||
{
|
{
|
||||||
private bool _onlyShowOwnedGames = true;
|
private readonly ApplicationLibrary _appLibrary;
|
||||||
|
|
||||||
private IEnumerable<CompatibilityEntry> _currentEntries = CompatibilityDatabase.Entries;
|
private IEnumerable<CompatibilityEntry> _currentEntries = CompatibilityDatabase.Entries;
|
||||||
private string[] _ownedGameTitleIds = [];
|
private string[] _ownedGameTitleIds = [];
|
||||||
|
@ -20,14 +21,26 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
|
|
||||||
public CompatibilityViewModel() {}
|
public CompatibilityViewModel() {}
|
||||||
|
|
||||||
|
private void AppCountUpdated(object _, ApplicationCountUpdatedEventArgs __)
|
||||||
|
=> _ownedGameTitleIds = _appLibrary.Applications.Keys.Select(x => x.ToString("X16")).ToArray();
|
||||||
|
|
||||||
public CompatibilityViewModel(ApplicationLibrary appLibrary)
|
public CompatibilityViewModel(ApplicationLibrary appLibrary)
|
||||||
{
|
{
|
||||||
appLibrary.ApplicationCountUpdated += (_, _)
|
_appLibrary = appLibrary;
|
||||||
=> _ownedGameTitleIds = appLibrary.Applications.Keys.Select(x => x.ToString("X16")).ToArray();
|
|
||||||
|
|
||||||
_ownedGameTitleIds = appLibrary.Applications.Keys.Select(x => x.ToString("X16")).ToArray();
|
AppCountUpdated(null, null);
|
||||||
|
|
||||||
|
_appLibrary.ApplicationCountUpdated += AppCountUpdated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IDisposable.Dispose()
|
||||||
|
{
|
||||||
|
GC.SuppressFinalize(this);
|
||||||
|
_appLibrary.ApplicationCountUpdated -= AppCountUpdated;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool _onlyShowOwnedGames = true;
|
||||||
|
|
||||||
public bool OnlyShowOwnedGames
|
public bool OnlyShowOwnedGames
|
||||||
{
|
{
|
||||||
get => _onlyShowOwnedGames;
|
get => _onlyShowOwnedGames;
|
||||||
|
|
|
@ -8,13 +8,17 @@ namespace Ryujinx.Ava.UI.Windows
|
||||||
{
|
{
|
||||||
public partial class CompatibilityListWindow : StyleableAppWindow
|
public partial class CompatibilityListWindow : StyleableAppWindow
|
||||||
{
|
{
|
||||||
public static Task Show(string titleId = null) =>
|
public static async Task Show(string titleId = null)
|
||||||
ShowAsync(new CompatibilityListWindow
|
{
|
||||||
|
using CompatibilityViewModel compatWindow = new(RyujinxApp.MainWindow.ViewModel.ApplicationLibrary);
|
||||||
|
|
||||||
|
await ShowAsync(new CompatibilityListWindow
|
||||||
{
|
{
|
||||||
DataContext = new CompatibilityViewModel(RyujinxApp.MainWindow.ViewModel.ApplicationLibrary),
|
DataContext = compatWindow,
|
||||||
SearchBoxFlush = { Text = titleId ?? string.Empty },
|
SearchBoxFlush = { Text = titleId ?? string.Empty },
|
||||||
SearchBoxNormal = { Text = titleId ?? string.Empty }
|
SearchBoxNormal = { Text = titleId ?? string.Empty }
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public CompatibilityListWindow() : base(useCustomTitleBar: true, 37)
|
public CompatibilityListWindow() : base(useCustomTitleBar: true, 37)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue