mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-04-24 06:47:44 +02:00
UI: Only show DLC RomFS button under Extract Data when DLCs are available.
Also convert the constructor of DlcSelectViewModel to expect a normal title id and not one already converted to the base ID.
This commit is contained in:
parent
fafb99c702
commit
e8a7d5b0b7
5 changed files with 23 additions and 4 deletions
|
@ -117,6 +117,7 @@
|
||||||
Header="{ext:Locale GameListContextMenuExtractDataRomFS}"
|
Header="{ext:Locale GameListContextMenuExtractDataRomFS}"
|
||||||
ToolTip.Tip="{ext:Locale GameListContextMenuExtractDataRomFSToolTip}" />
|
ToolTip.Tip="{ext:Locale GameListContextMenuExtractDataRomFSToolTip}" />
|
||||||
<MenuItem
|
<MenuItem
|
||||||
|
IsVisible="{Binding HasDlc}"
|
||||||
Click="ExtractAocRomFs_Click"
|
Click="ExtractAocRomFs_Click"
|
||||||
Header="{ext:Locale GameListContextMenuExtractDataAocRomFS}"
|
Header="{ext:Locale GameListContextMenuExtractDataAocRomFS}"
|
||||||
ToolTip.Tip="{ext:Locale GameListContextMenuExtractDataAocRomFSToolTip}" />
|
ToolTip.Tip="{ext:Locale GameListContextMenuExtractDataAocRomFSToolTip}" />
|
||||||
|
|
|
@ -334,7 +334,7 @@ namespace Ryujinx.Ava.UI.Controls
|
||||||
if (sender is not MenuItem { DataContext: MainWindowViewModel { SelectedApplication: not null } viewModel })
|
if (sender is not MenuItem { DataContext: MainWindowViewModel { SelectedApplication: not null } viewModel })
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DownloadableContentModel selectedDlc = await DlcSelectView.Show(viewModel.SelectedApplication.IdBase, viewModel.ApplicationLibrary);
|
DownloadableContentModel selectedDlc = await DlcSelectView.Show(viewModel.SelectedApplication.Id, viewModel.ApplicationLibrary);
|
||||||
|
|
||||||
if (selectedDlc is not null)
|
if (selectedDlc is not null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,9 +14,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
|
|
||||||
public DlcSelectViewModel(ulong titleId, ApplicationLibrary appLibrary)
|
public DlcSelectViewModel(ulong titleId, ApplicationLibrary appLibrary)
|
||||||
{
|
{
|
||||||
_dlcs = appLibrary.DownloadableContents.Items
|
_dlcs = appLibrary.FindDlcsFor(titleId)
|
||||||
.Where(x => x.Dlc.TitleIdBase == titleId)
|
|
||||||
.Select(x => x.Dlc)
|
|
||||||
.OrderBy(it => it.IsBundled ? 0 : 1)
|
.OrderBy(it => it.IsBundled ? 0 : 1)
|
||||||
.ThenBy(it => it.TitleId)
|
.ThenBy(it => it.TitleId)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
|
@ -360,6 +360,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool HasDlc => ApplicationLibrary.HasDlcs(SelectedApplication.Id);
|
||||||
|
|
||||||
public bool OpenUserSaveDirectoryEnabled => SelectedApplication.HasControlHolder && SelectedApplication.ControlHolder.Value.UserAccountSaveDataSize > 0;
|
public bool OpenUserSaveDirectoryEnabled => SelectedApplication.HasControlHolder && SelectedApplication.ControlHolder.Value.UserAccountSaveDataSize > 0;
|
||||||
|
|
||||||
public bool OpenDeviceSaveDirectoryEnabled => SelectedApplication.HasControlHolder && SelectedApplication.ControlHolder.Value.DeviceSaveDataSize > 0;
|
public bool OpenDeviceSaveDirectoryEnabled => SelectedApplication.HasControlHolder && SelectedApplication.ControlHolder.Value.DeviceSaveDataSize > 0;
|
||||||
|
|
|
@ -143,6 +143,24 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
|
||||||
return appData.HasValue;
|
return appData.HasValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool FindUpdate(ulong id, out TitleUpdateModel foundData)
|
||||||
|
{
|
||||||
|
Gommon.Optional<TitleUpdateModel> appData =
|
||||||
|
TitleUpdates.Keys.FindFirst(x => x.TitleId == id);
|
||||||
|
foundData = appData.HasValue ? appData.Value : null;
|
||||||
|
|
||||||
|
return appData.HasValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TitleUpdateModel[] FindUpdatesFor(ulong id)
|
||||||
|
=> TitleUpdates.Keys.Where(x => x.TitleIdBase == (id & ~0x1FFFUL)).ToArray();
|
||||||
|
|
||||||
|
public DownloadableContentModel[] FindDlcsFor(ulong id)
|
||||||
|
=> DownloadableContents.Keys.Where(x => x.TitleIdBase == (id & ~0x1FFFUL)).ToArray();
|
||||||
|
|
||||||
|
public bool HasDlcs(ulong id)
|
||||||
|
=> DownloadableContents.Keys.Any(x => x.TitleIdBase == (id & ~0x1FFFUL));
|
||||||
|
|
||||||
/// <exception cref="LibHac.Common.Keys.MissingKeyException">The configured key set is missing a key.</exception>
|
/// <exception cref="LibHac.Common.Keys.MissingKeyException">The configured key set is missing a key.</exception>
|
||||||
/// <exception cref="InvalidDataException">The NCA header could not be decrypted.</exception>
|
/// <exception cref="InvalidDataException">The NCA header could not be decrypted.</exception>
|
||||||
/// <exception cref="NotSupportedException">The NCA version is not supported.</exception>
|
/// <exception cref="NotSupportedException">The NCA version is not supported.</exception>
|
||||||
|
|
Loading…
Add table
Reference in a new issue