emby-toolbox/EmbyToolbox/Views/AddFilesOptionsDialog.xaml
2026-05-16 20:46:06 +05:00

179 lines
9.4 KiB
XML

<Window x:Class="EmbyToolbox.Views.AddFilesOptionsDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="clr-namespace:EmbyToolbox.Converters"
Title="Параметры добавления"
Width="620"
Height="430"
MinWidth="600"
MinHeight="390"
ResizeMode="CanResize"
WindowStartupLocation="CenterOwner"
Background="{DynamicResource Ui.Brush.Surface}">
<Window.Resources>
<converters:BooleanToVisibilityConverter x:Key="BoolToVis" />
<Style x:Key="AddSettingsLabel" TargetType="TextBlock" BasedOn="{StaticResource UiTextCaption}">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="0,0,6,3" />
</Style>
<Style x:Key="AddSettingsCombo" TargetType="ComboBox" BasedOn="{StaticResource UiCombo}">
<Setter Property="Height" Value="26" />
<Setter Property="MinHeight" Value="26" />
<Setter Property="Margin" Value="0,0,8,6" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
<Style x:Key="AddSettingsTextBox" TargetType="TextBox" BasedOn="{StaticResource UiTextInput}">
<Setter Property="Height" Value="26" />
<Setter Property="MinHeight" Value="26" />
<Setter Property="Margin" Value="0,0,8,6" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
<Style x:Key="AddSettingsGroup" TargetType="GroupBox">
<Setter Property="Padding" Value="6,4,6,4" />
<Setter Property="Margin" Value="0,0,0,6" />
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.BorderSubtle}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="FontSize" Value="11" />
</Style>
</Window.Resources>
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,0,0,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="220" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Профиль:" Style="{StaticResource AddSettingsLabel}" Margin="0,0,8,0" />
<ComboBox Grid.Column="1"
Style="{StaticResource AddSettingsCombo}"
Margin="0"
ItemsSource="{Binding Profiles}"
SelectedItem="{Binding SelectedProfile, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Profile}" TextTrimming="CharacterEllipsis" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
<StackPanel>
<GroupBox Header="Видео" Style="{StaticResource AddSettingsGroup}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Контейнер" Style="{StaticResource AddSettingsLabel}" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="Видео codec" Style="{StaticResource AddSettingsLabel}" />
<ComboBox Grid.Row="1" Grid.Column="0" Style="{StaticResource AddSettingsCombo}" ItemsSource="{Binding ContainerOptions}" SelectedItem="{Binding Container, Mode=TwoWay}" />
<ComboBox Grid.Row="1" Grid.Column="1" Style="{StaticResource AddSettingsCombo}" ItemsSource="{Binding VideoCodecOptions}" SelectedItem="{Binding Video, Mode=TwoWay}" />
<TextBlock Grid.Row="2" Grid.Column="0" Text="Pixel format" Style="{StaticResource AddSettingsLabel}" />
<TextBlock Grid.Row="2" Grid.Column="1" Text="Resolution" Style="{StaticResource AddSettingsLabel}" />
<ComboBox Grid.Row="3" Grid.Column="0" Style="{StaticResource AddSettingsCombo}" ItemsSource="{Binding PixelFormatOptions}" SelectedItem="{Binding PixelFormat, Mode=TwoWay}" />
<ComboBox Grid.Row="3" Grid.Column="1" Style="{StaticResource AddSettingsCombo}" ItemsSource="{Binding ResolutionOptions}" SelectedItem="{Binding Resolution, Mode=TwoWay}" />
<TextBlock Grid.Row="4" Grid.Column="0" Text="FPS" Style="{StaticResource AddSettingsLabel}" />
<TextBlock Grid.Row="4" Grid.Column="1" Text="Видеобитрейт" Style="{StaticResource AddSettingsLabel}" />
<ComboBox Grid.Row="5" Grid.Column="0" Style="{StaticResource AddSettingsCombo}" ItemsSource="{Binding FpsOptions}" SelectedItem="{Binding Fps, Mode=TwoWay}" />
<Grid Grid.Row="5" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="86" />
</Grid.ColumnDefinitions>
<ComboBox Grid.Column="0" Style="{StaticResource AddSettingsCombo}" ItemsSource="{Binding VideoBitrateOptions}" SelectedItem="{Binding VideoBitrateMode, Mode=TwoWay}" />
<Grid Grid.Column="1" Visibility="{Binding IsVideoBitrateCustomVisible, Converter={StaticResource BoolToVis}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0"
Style="{StaticResource AddSettingsTextBox}"
Text="{Binding VideoBitrateCustomMbps, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</Grid>
</Grid>
</GroupBox>
<GroupBox Header="Аудио" Style="{StaticResource AddSettingsGroup}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Audio codec" Style="{StaticResource AddSettingsLabel}" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="Audio bitrate" Style="{StaticResource AddSettingsLabel}" />
<ComboBox Grid.Row="1" Grid.Column="0" Style="{StaticResource AddSettingsCombo}" ItemsSource="{Binding AudioCodecOptions}" SelectedItem="{Binding Audio, Mode=TwoWay}" />
<ComboBox Grid.Row="1" Grid.Column="1" Style="{StaticResource AddSettingsCombo}" ItemsSource="{Binding AudioBitrateOptions}" SelectedItem="{Binding AudioBitrate, Mode=TwoWay}" />
</Grid>
</GroupBox>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" Header="Внешние дорожки" Style="{StaticResource AddSettingsGroup}">
<WrapPanel>
<CheckBox Content="Внешние аудио" IsChecked="{Binding ExternalTracks, Mode=TwoWay}" Margin="0,0,14,4" />
<CheckBox Content="Внешние субтитры" IsChecked="{Binding ExternalSubtitles, Mode=TwoWay}" Margin="0,0,14,4" />
<CheckBox Content="Внешние шрифты" IsChecked="{Binding Fonts, Mode=TwoWay}" Margin="0,0,14,4" />
</WrapPanel>
</GroupBox>
<GroupBox Grid.Column="2" Header="Прочие настройки" Style="{StaticResource AddSettingsGroup}">
<WrapPanel>
<CheckBox Content="Удалять иностранные дорожки" IsChecked="{Binding RemoveForeignTracks, Mode=TwoWay}" Margin="0,0,14,4" />
<CheckBox Content="Отключать субтитры" IsChecked="{Binding DisableSubtitleDefault, Mode=TwoWay}" Margin="0,0,14,4" />
</WrapPanel>
</GroupBox>
</Grid>
</StackPanel>
</ScrollViewer>
<Grid Grid.Row="2" Margin="0,8,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="{Binding ValidationMessage}"
Foreground="{DynamicResource Ui.Brush.ErrorText}"
VerticalAlignment="Center"
Visibility="{Binding HasValidationMessage, Converter={StaticResource BoolToVis}}" />
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Button MinWidth="96"
Margin="0,0,8,0"
Style="{StaticResource UiButtonPrimary}"
Foreground="White"
Content="Добавить"
IsDefault="True"
Command="{Binding AddCommand}" />
<Button MinWidth="96"
Style="{StaticResource UiButtonSecondary}"
Content="Отмена"
IsCancel="True"
Command="{Binding CancelCommand}" />
</StackPanel>
</Grid>
</Grid>
</Window>