
* Add default values to ApplicationData directly * Refactor application loading It should now be possible to load multi game XCIs. Included updates won't be detected for now. Opening a game from the command line currently only opens the first one. * Only include program NCAs where at least one tuple item is not null * Get application data by title id and add programIndex check back * Refactor application loading again and remove duplicate code * Actually use patch ncas for updates * Fix number of applications found with multi game xcis * Don't load bundled updates from multi game xcis * Change ApplicationData.TitleId type to ulong & Add TitleIdString property * Use cnmt files and ContentCollection to load programs * Ava: Add updates and DLCs from gamecarts * Get the cnmt file from its NCA * Ava: Identify bundled updates in updater window * Fix the (hopefully) last few bugs * Add idOffset parameter to GetNcaByType * Handle missing file for dlc.json * Ava: Shorten error message for invalid files * Gtk: Add additional string for bundled updates in TitleUpdateWindow * Hopefully fix DLC issues * Apply formatting * Finally fix DLC issues * Adjust property names and fileSize field * Read the correct update file * Fix wrong casing for application id strings * Rename TitleId to ApplicationId * Address review comments * Fix formatting issues * Apply suggestions from code review Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Gracefully fail when loading pfs for update and dlc window * Fix applications with multiple programs * Fix DLCWindow crash on GTK * Fix some GUI issues * Remove IsXci again --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
193 lines
8.4 KiB
XML
193 lines
8.4 KiB
XML
<UserControl
|
|
x:Class="Ryujinx.Ava.UI.Windows.DownloadableContentManagerWindow"
|
|
xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
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:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
|
|
xmlns:models="clr-namespace:Ryujinx.Ava.UI.Models"
|
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
Width="500"
|
|
Height="380"
|
|
mc:Ignorable="d"
|
|
x:DataType="viewModels:DownloadableContentManagerViewModel"
|
|
Focusable="True">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Panel
|
|
Margin="0 0 0 10"
|
|
Grid.Row="0">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock
|
|
Grid.Column="0"
|
|
Text="{Binding UpdateCount}" />
|
|
<StackPanel
|
|
Margin="10 0"
|
|
Grid.Column="1"
|
|
Orientation="Horizontal">
|
|
<Button
|
|
Name="EnableAllButton"
|
|
MinWidth="90"
|
|
Margin="5"
|
|
Command="{Binding EnableAll}">
|
|
<TextBlock Text="{locale:Locale DlcManagerEnableAllButton}" />
|
|
</Button>
|
|
<Button
|
|
Name="DisableAllButton"
|
|
MinWidth="90"
|
|
Margin="5"
|
|
Command="{Binding DisableAll}">
|
|
<TextBlock Text="{locale:Locale DlcManagerDisableAllButton}" />
|
|
</Button>
|
|
</StackPanel>
|
|
<TextBox
|
|
Grid.Column="2"
|
|
MinHeight="29"
|
|
MaxHeight="29"
|
|
HorizontalAlignment="Stretch"
|
|
Watermark="{locale:Locale Search}"
|
|
Text="{Binding Search}" />
|
|
</Grid>
|
|
</Panel>
|
|
<Border
|
|
Grid.Row="1"
|
|
Margin="0 0 0 24"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
BorderBrush="{DynamicResource AppListHoverBackgroundColor}"
|
|
BorderThickness="1"
|
|
CornerRadius="5"
|
|
Padding="2.5">
|
|
<ListBox
|
|
AutoScrollToSelectedItem="False"
|
|
SelectionMode="Multiple, Toggle"
|
|
Background="Transparent"
|
|
SelectionChanged="OnSelectionChanged"
|
|
SelectedItems="{Binding SelectedDownloadableContents, Mode=TwoWay}"
|
|
ItemsSource="{Binding Views}">
|
|
<ListBox.DataTemplates>
|
|
<DataTemplate
|
|
DataType="models:DownloadableContentModel">
|
|
<Panel Margin="10">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid
|
|
Grid.Column="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock
|
|
Grid.Column="0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
MaxLines="2"
|
|
TextWrapping="Wrap"
|
|
TextTrimming="CharacterEllipsis"
|
|
Text="{Binding Label}" />
|
|
<TextBlock
|
|
Grid.Column="1"
|
|
Margin="10 0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding TitleId}" />
|
|
</Grid>
|
|
<StackPanel
|
|
Grid.Column="1"
|
|
Spacing="10"
|
|
Orientation="Horizontal"
|
|
HorizontalAlignment="Right">
|
|
<Button
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Right"
|
|
Padding="10"
|
|
MinWidth="0"
|
|
MinHeight="0"
|
|
Click="OpenLocation">
|
|
<ui:SymbolIcon
|
|
Symbol="OpenFolder"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center" />
|
|
</Button>
|
|
<Button
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Right"
|
|
Padding="10"
|
|
MinWidth="0"
|
|
MinHeight="0"
|
|
Click="RemoveDLC">
|
|
<ui:SymbolIcon
|
|
Symbol="Cancel"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center" />
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Panel>
|
|
</DataTemplate>
|
|
</ListBox.DataTemplates>
|
|
<ListBox.Styles>
|
|
<Style Selector="ListBoxItem">
|
|
<Setter Property="Background" Value="Transparent" />
|
|
</Style>
|
|
</ListBox.Styles>
|
|
</ListBox>
|
|
</Border>
|
|
<Panel
|
|
Grid.Row="2"
|
|
HorizontalAlignment="Stretch">
|
|
<StackPanel
|
|
Orientation="Horizontal"
|
|
Spacing="10"
|
|
HorizontalAlignment="Left">
|
|
<Button
|
|
Name="AddButton"
|
|
MinWidth="90"
|
|
Margin="5"
|
|
Command="{Binding Add}">
|
|
<TextBlock Text="{locale:Locale SettingsTabGeneralAdd}" />
|
|
</Button>
|
|
<Button
|
|
Name="RemoveAllButton"
|
|
MinWidth="90"
|
|
Margin="5"
|
|
Command="{Binding RemoveAll}">
|
|
<TextBlock Text="{locale:Locale DlcManagerRemoveAllButton}" />
|
|
</Button>
|
|
</StackPanel>
|
|
<StackPanel
|
|
Orientation="Horizontal"
|
|
Spacing="10"
|
|
HorizontalAlignment="Right">
|
|
<Button
|
|
Name="SaveButton"
|
|
MinWidth="90"
|
|
Margin="5"
|
|
Click="SaveAndClose">
|
|
<TextBlock Text="{locale:Locale SettingsButtonSave}" />
|
|
</Button>
|
|
<Button
|
|
Name="CancelButton"
|
|
MinWidth="90"
|
|
Margin="5"
|
|
Click="Close">
|
|
<TextBlock Text="{locale:Locale InputDialogCancel}" />
|
|
</Button>
|
|
</StackPanel>
|
|
</Panel>
|
|
</Grid>
|
|
</UserControl>
|