emby-toolbox/EmbyToolbox/Views/TrackExtractionView.xaml
Emby Toolbox 6264b487fe Initial commit: Emby Toolbox (conversion scroll fix, bulk Del for tracks).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 21:33:47 +05:00

189 lines
9.0 KiB
XML

<UserControl x:Class="EmbyToolbox.Views.TrackExtractionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converters="clr-namespace:EmbyToolbox.Converters"
xmlns:behaviors="clr-namespace:EmbyToolbox.Behaviors"
mc:Ignorable="d"
d:DesignWidth="940"
d:DesignHeight="560">
<UserControl.Resources>
<converters:BooleanToVisibilityConverter x:Key="BoolToVis" />
</UserControl.Resources>
<Border BorderBrush="{DynamicResource Ui.Brush.BorderSubtle}"
BorderThickness="1"
Background="{DynamicResource Ui.Brush.Surface}"
Padding="8">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0"
Margin="0,0,0,8"
Orientation="Horizontal">
<TextBlock Style="{StaticResource UiTextCaption}"
VerticalAlignment="Center"
Margin="0,0,12,0"
Text="Источник:" />
<Button MinWidth="150"
Margin="0,0,8,0"
Style="{StaticResource UiButtonSecondary}"
Command="{Binding AddFilesCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE8E5;" />
<TextBlock Margin="8,0,0,0" VerticalAlignment="Center" Text="Добавить файлы" />
</StackPanel>
</Button>
<Button MinWidth="150"
Style="{StaticResource UiButtonSecondary}"
Command="{Binding AddDirectoryCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE8B7;" />
<TextBlock Margin="8,0,0,0" VerticalAlignment="Center" Text="Добавить каталог" />
</StackPanel>
</Button>
</StackPanel>
<Grid Grid.Row="1"
Margin="0,0,0,8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" MinWidth="200" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Style="{StaticResource UiTextCaption}"
VerticalAlignment="Center"
Text="Папка назначения:" />
<TextBox Grid.Column="2"
Style="{StaticResource UiTextInput}"
VerticalAlignment="Center"
Text="{Binding DestinationFolderPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<Button Grid.Column="4"
MinWidth="100"
Style="{StaticResource UiButtonSecondary}"
Command="{Binding ChooseDestinationFolderCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE838;" />
<TextBlock Margin="8,0,0,0" VerticalAlignment="Center" Text="Выбрать" />
</StackPanel>
</Button>
</Grid>
<Border Grid.Row="2"
behaviors:TrackExtractionDropTargetBehavior.IsEnabled="True">
<Border.Style>
<Style TargetType="Border">
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.BorderSubtle}" />
<Setter Property="BorderThickness" Value="1" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsDropHighlight}" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.Accent}" />
<Setter Property="BorderThickness" Value="2" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<DataGrid ItemsSource="{Binding Items}"
SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
SelectionMode="Extended"
SelectionUnit="FullRow"
EnableRowVirtualization="True"
EnableColumnVirtualization="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
Style="{StaticResource UiDataGrid}"
RowStyle="{StaticResource UiDataGridRow}"
ColumnHeaderStyle="{StaticResource UiDataGridColumnHeader}"
CellStyle="{StaticResource UiDataGridCell}"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
Margin="2">
<DataGrid.Columns>
<DataGridTextColumn Header="&#x2116;"
Binding="{Binding RowNumber, Mode=OneWay}"
IsReadOnly="True"
Width="52" />
<DataGridTextColumn Header="Файл"
Binding="{Binding FileName, Mode=OneWay}"
IsReadOnly="True"
Width="2.2*"
MinWidth="200" />
<DataGridTextColumn Header="Размер, МБ"
Binding="{Binding SizeMb, Mode=OneWay, StringFormat=F2}"
IsReadOnly="True"
Width="88" />
<DataGridTextColumn Header="Аудио"
Binding="{Binding AudioSummary, Mode=OneWay}"
IsReadOnly="True"
Width="64" />
<DataGridTextColumn Header="Субтитры"
Binding="{Binding SubtitleSummary, Mode=OneWay}"
IsReadOnly="True"
Width="74" />
<DataGridTextColumn Header="Attachments"
Binding="{Binding AttachmentSummary, Mode=OneWay}"
IsReadOnly="True"
Width="88" />
<DataGridTextColumn Header="Статус"
Binding="{Binding Status, Mode=OneWay}"
IsReadOnly="True"
Width="100" />
<DataGridTextColumn Header="Прогресс, %"
Binding="{Binding ProgressPercent, Mode=OneWay, StringFormat=F2}"
IsReadOnly="True"
Width="90" />
<DataGridTextColumn Header="Сообщение"
Binding="{Binding Message, Mode=OneWay}"
IsReadOnly="True"
Width="2.5*"
MinWidth="160" />
</DataGrid.Columns>
</DataGrid>
</Border>
<StackPanel Grid.Row="3"
Margin="0,10,0,0"
Orientation="Horizontal"
HorizontalAlignment="Right">
<Button MinWidth="138"
Margin="0,0,8,0"
Style="{StaticResource UiButtonPrimary}"
Command="{Binding StartCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphOnPrimary}" Text="&#xE768;" />
<TextBlock Margin="8,0,0,0" VerticalAlignment="Center" Text="Старт" />
</StackPanel>
</Button>
<Button MinWidth="118"
Margin="0,0,8,0"
Style="{StaticResource UiButtonSecondary}"
Command="{Binding StopCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE71A;" />
<TextBlock Margin="8,0,0,0" VerticalAlignment="Center" Text="Стоп" />
</StackPanel>
</Button>
<Button MinWidth="118"
Style="{StaticResource UiButtonGhost}"
Command="{Binding ClearCommand}">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="&#xE894;" />
<TextBlock Margin="8,0,0,0" VerticalAlignment="Center" Text="Очистить" />
</StackPanel>
</Button>
</StackPanel>
</Grid>
</Border>
</UserControl>