- Unify audio/subtitle selection: single-select, auto-default, cross-file propagation by exact name - Show file size in queue, group divider and reordered columns in track table, drop accent highlight on row selection - Add cumulative progress bar (files finished, MB copied) to the stripping window - Add Windows toast notifications on stripping completion/cancel/error - Restart the app after settings are changed; Cancel no longer clears the queue, only closes the window - Add ConfigureAwait(false) throughout MkvService so concurrent strips don't starve the UI thread - Hardcode scan/strip concurrency (10/5) instead of exposing it in Settings
90 lines
4.3 KiB
XML
90 lines
4.3 KiB
XML
<ui:FluentWindow x:Class="Futonizer.Views.ProgressWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
|
|
Title="Stripping Tracks"
|
|
Height="500" Width="720"
|
|
MinHeight="380" MinWidth="500"
|
|
WindowStartupLocation="CenterOwner"
|
|
ExtendsContentIntoTitleBar="True"
|
|
WindowBackdropType="Mica"
|
|
WindowCornerPreference="Round"
|
|
Closing="Window_Closing"
|
|
Loaded="Window_Loaded">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="*"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<ui:TitleBar Grid.Row="0" Title="Stripping Tracks"/>
|
|
|
|
<Grid Grid.Row="1" Margin="16,8,16,16">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Active jobs -->
|
|
<ItemsControl x:Name="ActiveJobsList" Grid.Row="0" Margin="0,0,0,10">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid Margin="0,0,0,6">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<ProgressBar Grid.Row="0" Height="6" Minimum="0" Maximum="100" Value="{Binding Percent}"/>
|
|
<TextBlock Grid.Row="1" Margin="0,2,0,0" FontSize="11" Opacity="0.75" Text="{Binding Display}"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
|
|
<!-- Log -->
|
|
<Border Grid.Row="1" CornerRadius="8"
|
|
Background="{DynamicResource ControlFillColorDefaultBrush}"
|
|
BorderBrush="{DynamicResource ControlElevationBorderBrush}" BorderThickness="1">
|
|
<ui:TextBox x:Name="LogBox" IsReadOnly="True" TextWrapping="NoWrap"
|
|
AcceptsReturn="True"
|
|
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
|
|
FontFamily="Cascadia Mono, Consolas" FontSize="12"
|
|
BorderThickness="0" Background="Transparent"/>
|
|
</Border>
|
|
|
|
<!-- Total progress -->
|
|
<Grid Grid.Row="2" Margin="0,10,0,0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<ProgressBar x:Name="TotalProgressBar" Grid.Row="0" Height="8" Minimum="0" Maximum="100" Value="0"/>
|
|
<Grid Grid.Row="1" Margin="0,4,0,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock x:Name="TotalFilesText" Grid.Column="0" FontSize="11" Opacity="0.75"/>
|
|
<TextBlock x:Name="TotalBytesText" Grid.Column="1" FontSize="11" Opacity="0.75"/>
|
|
</Grid>
|
|
</Grid>
|
|
|
|
<!-- Status + speed + button -->
|
|
<Grid Grid.Row="3" Margin="0,10,0,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock x:Name="StatusText" Grid.Column="0" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<TextBlock x:Name="TotalSpeedText" Grid.Column="1" VerticalAlignment="Center"
|
|
Margin="16,0,16,0" Opacity="0.75"/>
|
|
<ui:Button x:Name="CancelCloseButton" Grid.Column="2" Content="Cancel" Width="100"
|
|
Appearance="Secondary" Click="CancelCloseButton_Click"/>
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</ui:FluentWindow>
|