209 lines
12 KiB
XML
209 lines
12 KiB
XML
<Window x:Class="EmbyToolbox.Views.BulkFileConversionSettingsWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:models="clr-namespace:EmbyToolbox.Models"
|
|
xmlns:converters="clr-namespace:EmbyToolbox.Converters"
|
|
Title="Массовая настройка дорожек"
|
|
MinWidth="900"
|
|
MinHeight="560"
|
|
Width="960"
|
|
Height="720"
|
|
WindowStartupLocation="CenterOwner"
|
|
Background="{DynamicResource Ui.Brush.Surface}">
|
|
<Window.Resources>
|
|
<converters:TrackActionKindToRussianConverter x:Key="TrackActionRu" />
|
|
<converters:BooleanToVisibilityConverter x:Key="BoolToVis" />
|
|
<SolidColorBrush x:Key="TracksRow.DefaultBg" Color="{DynamicResource C.Track.DefaultBg}" />
|
|
<SolidColorBrush x:Key="TracksRow.ConvertBg" Color="{DynamicResource C.Track.ConvertBg}" />
|
|
<SolidColorBrush x:Key="TracksRow.RemoveBg" Color="{DynamicResource C.Track.RemoveBg}" />
|
|
<SolidColorBrush x:Key="TracksRow.NormalBg" Color="{DynamicResource C.Track.NormalBg}" />
|
|
<SolidColorBrush x:Key="TracksRow.HoverDefault" Color="{DynamicResource C.Track.HoverDefault}" />
|
|
<SolidColorBrush x:Key="TracksRow.HoverConvert" Color="{DynamicResource C.Track.HoverConvert}" />
|
|
<SolidColorBrush x:Key="TracksRow.HoverRemove" Color="{DynamicResource C.Track.HoverRemove}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelDefault" Color="{DynamicResource C.Track.SelDefault}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelConvert" Color="{DynamicResource C.Track.SelConvert}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelRemove" Color="{DynamicResource C.Track.SelRemove}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelNormal" Color="{DynamicResource C.Track.SelNormal}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelHoverDefault" Color="{DynamicResource C.Track.SelHoverDefault}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelHoverConvert" Color="{DynamicResource C.Track.SelHoverConvert}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelHoverRemove" Color="{DynamicResource C.Track.SelHoverRemove}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelHoverNormal" Color="{DynamicResource C.Track.SelHoverNormal}" />
|
|
<SolidColorBrush x:Key="TracksRow.SelectionStripe" Color="{DynamicResource C.Track.SelectionStripe}" />
|
|
<SolidColorBrush x:Key="TracksRow.ConflictBorder" Color="{DynamicResource C.Track.ConflictBorder}" />
|
|
<Style x:Key="TracksGridWrapTextDisplay" TargetType="TextBlock" BasedOn="{StaticResource UiDataGridTextElement}">
|
|
<Setter Property="FontSize" Value="11" />
|
|
<Setter Property="LineHeight" Value="16" />
|
|
<Setter Property="LineStackingStrategy" Value="BlockLineHeight" />
|
|
<Setter Property="MaxHeight" Value="32" />
|
|
<Setter Property="TextWrapping" Value="Wrap" />
|
|
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
</Style>
|
|
</Window.Resources>
|
|
<Grid Margin="12">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<StackPanel Grid.Row="0" Margin="0,0,0,8">
|
|
<TextBlock Text="Массовая настройка дорожек" Style="{StaticResource UiTextH2}" />
|
|
<TextBlock Margin="0,4,0,0"
|
|
Text="{Binding FilesCount, StringFormat=Файлов: {0}}"
|
|
Foreground="{DynamicResource Ui.Brush.Caption}" />
|
|
<TextBlock Margin="0,2,0,0"
|
|
Text="{Binding TargetRowNumbersText, StringFormat=Строки: {0}}"
|
|
Foreground="{DynamicResource Ui.Brush.Caption}" />
|
|
</StackPanel>
|
|
|
|
<DataGrid x:Name="TracksGrid"
|
|
Grid.Row="1"
|
|
ItemsSource="{Binding TrackRows, Mode=OneWay}"
|
|
AutoGenerateColumns="False"
|
|
IsReadOnly="False"
|
|
CanUserAddRows="False"
|
|
CanUserDeleteRows="False"
|
|
SelectionUnit="FullRow"
|
|
SelectionMode="Extended"
|
|
EnableRowVirtualization="True"
|
|
EnableColumnVirtualization="True"
|
|
VirtualizingPanel.IsVirtualizing="True"
|
|
VirtualizingPanel.VirtualizationMode="Recycling"
|
|
RowHeaderWidth="0"
|
|
RowHeight="38"
|
|
FontSize="11"
|
|
SelectionChanged="TracksGrid_OnSelectionChanged"
|
|
Style="{StaticResource UiDataGrid}"
|
|
ColumnHeaderStyle="{StaticResource UiDataGridColumnHeader}"
|
|
CellStyle="{StaticResource UiDataGridCell}">
|
|
<DataGrid.InputBindings>
|
|
<KeyBinding Key="Delete"
|
|
Command="{Binding SetSelectedTracksRemoveCommand}"
|
|
CommandParameter="{Binding ElementName=TracksGrid, Path=SelectedItems}" />
|
|
</DataGrid.InputBindings>
|
|
<DataGrid.RowStyle>
|
|
<Style TargetType="DataGridRow" BasedOn="{StaticResource UiDataGridRow}">
|
|
<Setter Property="Background" Value="{StaticResource TracksRow.NormalBg}" />
|
|
<Setter Property="Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
|
<Setter Property="BorderBrush" Value="Transparent" />
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="False" />
|
|
<Condition Binding="{Binding Default}" Value="True" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Background" Value="{StaticResource TracksRow.DefaultBg}" />
|
|
</MultiDataTrigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="False" />
|
|
<Condition Binding="{Binding Action}" Value="{x:Static models:TrackActionKind.Convert}" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Background" Value="{StaticResource TracksRow.ConvertBg}" />
|
|
</MultiDataTrigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="False" />
|
|
<Condition Binding="{Binding Action}" Value="{x:Static models:TrackActionKind.Remove}" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Background" Value="{StaticResource TracksRow.RemoveBg}" />
|
|
</MultiDataTrigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="True" />
|
|
<Condition Binding="{Binding Action}" Value="{x:Static models:TrackActionKind.Convert}" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Background" Value="{StaticResource TracksRow.SelConvert}" />
|
|
<Setter Property="BorderBrush" Value="{StaticResource TracksRow.SelectionStripe}" />
|
|
<Setter Property="BorderThickness" Value="3,0,0,0" />
|
|
</MultiDataTrigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="True" />
|
|
<Condition Binding="{Binding Action}" Value="{x:Static models:TrackActionKind.Remove}" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Background" Value="{StaticResource TracksRow.SelRemove}" />
|
|
<Setter Property="BorderBrush" Value="{StaticResource TracksRow.SelectionStripe}" />
|
|
<Setter Property="BorderThickness" Value="3,0,0,0" />
|
|
</MultiDataTrigger>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="True" />
|
|
<Condition Binding="{Binding Default}" Value="True" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="Background" Value="{StaticResource TracksRow.SelDefault}" />
|
|
<Setter Property="BorderBrush" Value="{StaticResource TracksRow.SelectionStripe}" />
|
|
<Setter Property="BorderThickness" Value="3,0,0,0" />
|
|
</MultiDataTrigger>
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter Property="Background" Value="{StaticResource TracksRow.SelNormal}" />
|
|
<Setter Property="BorderBrush" Value="{StaticResource TracksRow.SelectionStripe}" />
|
|
<Setter Property="BorderThickness" Value="3,0,0,0" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</DataGrid.RowStyle>
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Header="#" Binding="{Binding IndexDisplay, Mode=OneWay}" IsReadOnly="True" MinWidth="32" />
|
|
<DataGridTextColumn Header="Источник" Binding="{Binding SourceDisplay, Mode=OneWay}" IsReadOnly="True" MinWidth="80" />
|
|
<DataGridTextColumn Header="Тип" Binding="{Binding TypeDisplay, Mode=OneWay}" IsReadOnly="True" MinWidth="60" />
|
|
<DataGridTextColumn Header="Codec" Binding="{Binding Codec, Mode=OneWay}" IsReadOnly="True" MinWidth="70" />
|
|
<DataGridTextColumn Header="Language" Binding="{Binding Language, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" MinWidth="80" />
|
|
<DataGridTextColumn Header="Title"
|
|
Binding="{Binding Title, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
Width="*"
|
|
MinWidth="180" />
|
|
<DataGridTemplateColumn Header="Def" MinWidth="44">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<CheckBox IsChecked="{Binding Default, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
IsEnabled="{Binding IsDefaultEnabled, Mode=OneWay}" HorizontalAlignment="Center" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Header="Действие" MinWidth="120">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<ComboBox Style="{StaticResource UiCombo}"
|
|
ItemsSource="{Binding ValidActions, Mode=OneWay}"
|
|
SelectedItem="{Binding Action, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding Converter={StaticResource TrackActionRu}}" />
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Header="Битрейт" MinWidth="90">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<ComboBox Style="{StaticResource UiCombo}"
|
|
Visibility="{Binding IsAudioBitrateVisible, Mode=OneWay, Converter={StaticResource BoolToVis}}"
|
|
ItemsSource="{Binding DataContext.FormOptions.AudioBitrateKbps, RelativeSource={RelativeSource AncestorType=Window}}"
|
|
SelectedItem="{Binding AudioBitrateKbps, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
<DataGridTemplateColumn Header="Details" Width="*" MinWidth="160">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Style="{StaticResource TracksGridWrapTextDisplay}"
|
|
Text="{Binding Details, Mode=OneWay}"
|
|
ToolTip="{Binding Details, Mode=OneWay}" />
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
|
|
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,8,0,0">
|
|
<Button MinWidth="100" Margin="0,0,8,0" Style="{StaticResource UiButtonPrimary}" Content="Сохранить" Command="{Binding SaveCommand}" />
|
|
<Button MinWidth="100" Style="{StaticResource UiButtonSecondary}" Content="Отмена" Command="{Binding CancelCommand}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Window>
|