Add overall progress, notifications, and UI polish
- 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
This commit is contained in:
+28
-6
@@ -157,6 +157,7 @@
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="16"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="18"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
@@ -178,7 +179,12 @@
|
||||
FontSize="12" VerticalAlignment="Center" Margin="6,0"
|
||||
TextTrimming="CharacterEllipsis"/>
|
||||
|
||||
<Button Grid.Column="2" Content="×"
|
||||
<TextBlock Grid.Column="2" Text="{Binding FileSizeDisplay}"
|
||||
FontSize="11" VerticalAlignment="Center" Margin="4,0"
|
||||
Opacity="0.6"
|
||||
Foreground="{DynamicResource TextFillColorSecondaryBrush}"/>
|
||||
|
||||
<Button Grid.Column="3" Content="×"
|
||||
Tag="{Binding}"
|
||||
Click="RemoveFile_Click"
|
||||
Background="Transparent" BorderThickness="0"
|
||||
@@ -229,16 +235,32 @@
|
||||
<DataGrid.RowStyle>
|
||||
<Style TargetType="DataGridRow">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource ControlElevationBorderBrush}"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="{DynamicResource AccentFillColorSecondaryBrush}"/>
|
||||
</Trigger>
|
||||
<DataTrigger Binding="{Binding IsGroupStart}" Value="True">
|
||||
<Setter Property="BorderThickness" Value="0,1,0,0"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Type}" Value="video">
|
||||
<Setter Property="Opacity" Value="0.5"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding Type}" Value="chapters">
|
||||
<Setter Property="Opacity" Value="0.5"/>
|
||||
</DataTrigger>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding Type}" Value="audio"/>
|
||||
<Condition Binding="{Binding Copy}" Value="False"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Opacity" Value="0.5"/>
|
||||
</MultiDataTrigger>
|
||||
<MultiDataTrigger>
|
||||
<MultiDataTrigger.Conditions>
|
||||
<Condition Binding="{Binding Type}" Value="subtitles"/>
|
||||
<Condition Binding="{Binding Copy}" Value="False"/>
|
||||
</MultiDataTrigger.Conditions>
|
||||
<Setter Property="Opacity" Value="0.5"/>
|
||||
</MultiDataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.RowStyle>
|
||||
@@ -273,12 +295,12 @@
|
||||
|
||||
<DataGridTextColumn Header="ID"
|
||||
Binding="{Binding IdDisplay}" Width="45" IsReadOnly="True"/>
|
||||
<DataGridTextColumn Header="Codec"
|
||||
Binding="{Binding Codec}" Width="185" IsReadOnly="True"/>
|
||||
<DataGridTextColumn Header="Language"
|
||||
Binding="{Binding Language}" Width="100" IsReadOnly="True"/>
|
||||
<DataGridTextColumn Header="Name"
|
||||
Binding="{Binding DisplayName}" Width="*" IsReadOnly="True"/>
|
||||
<DataGridTextColumn Header="Codec"
|
||||
Binding="{Binding Codec}" Width="185" IsReadOnly="True"/>
|
||||
|
||||
<!-- Default (read-only indicator) -->
|
||||
<DataGridTemplateColumn Header="Default" Width="70"
|
||||
|
||||
Reference in New Issue
Block a user