1146 lines
61 KiB
XML
1146 lines
61 KiB
XML
<Window x:Class="EmbyToolbox.MainWindow"
|
||
x:Name="RootWindow"
|
||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:shell="clr-namespace:System.Windows.Shell;assembly=PresentationFramework"
|
||
xmlns:behaviors="clr-namespace:EmbyToolbox.Behaviors"
|
||
xmlns:views="clr-namespace:EmbyToolbox.Views"
|
||
xmlns:viewModels="clr-namespace:EmbyToolbox.ViewModels"
|
||
xmlns:converters="clr-namespace:EmbyToolbox.Converters"
|
||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||
mc:Ignorable="d"
|
||
Title="Emby Toolbox"
|
||
Icon="/Resources/AppIcon.ico"
|
||
MinWidth="800"
|
||
MinHeight="500"
|
||
Width="1100"
|
||
Height="750"
|
||
Background="{DynamicResource Ui.Brush.Window}"
|
||
WindowStartupLocation="CenterScreen">
|
||
<Window.Resources>
|
||
<converters:BooleanToVisibilityConverter x:Key="BoolToVis" />
|
||
</Window.Resources>
|
||
<Window.TaskbarItemInfo>
|
||
<shell:TaskbarItemInfo ProgressState="{Binding TaskbarProgressState, Mode=OneWay}"
|
||
ProgressValue="{Binding TaskbarProgressValue, Mode=OneWay}" />
|
||
</Window.TaskbarItemInfo>
|
||
<Grid Margin="{StaticResource Ui.PagePadding}">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="*" />
|
||
<RowDefinition Height="Auto" />
|
||
</Grid.RowDefinitions>
|
||
|
||
<TabControl Grid.Row="0" Style="{StaticResource UiTabControl}" SelectedIndex="{Binding SelectedTabIndex, Mode=TwoWay}">
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTab}" Text="" />
|
||
<TextBlock Text="Переименование сериалов" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<Grid DataContext="{Binding SeriesRenamer}">
|
||
<Grid.Resources>
|
||
<Style x:Key="SeriesTreeItemStyle" TargetType="TreeViewItem">
|
||
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
|
||
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
|
||
<Setter Property="Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
||
</Style>
|
||
</Grid.Resources>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="*" />
|
||
</Grid.RowDefinitions>
|
||
|
||
<Grid Grid.Row="0" Margin="0,0,0,12">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<StackPanel Grid.Column="0">
|
||
<Grid>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="8" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<Grid Grid.Column="0">
|
||
<TextBox x:Name="SeriesRootPathBox"
|
||
Style="{StaticResource UiTextInput}"
|
||
Text="{Binding RootFolderPath, Mode=OneWay}"
|
||
IsReadOnly="True"
|
||
HorizontalAlignment="Stretch" />
|
||
<TextBlock Margin="8,0,0,0"
|
||
VerticalAlignment="Center"
|
||
IsHitTestVisible="False"
|
||
Text="Выберите корневую папку сериала...">
|
||
<TextBlock.Style>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource UiTextCaption}">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding Text, ElementName=SeriesRootPathBox}" Value="">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBlock.Style>
|
||
</TextBlock>
|
||
</Grid>
|
||
<Button Grid.Column="2"
|
||
MinWidth="100"
|
||
Style="{StaticResource UiButtonSecondary}"
|
||
Command="{Binding SelectRootFolderCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Выбрать" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</Grid>
|
||
|
||
<Grid Margin="0,8,0,0">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto" />
|
||
<ColumnDefinition Width="8" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
<TextBlock Grid.Column="0"
|
||
Style="{StaticResource UiTextCaption}"
|
||
Text="Имя сериала:"
|
||
VerticalAlignment="Center" />
|
||
<Grid Grid.Column="2">
|
||
<TextBox x:Name="SeriesNameBox"
|
||
Style="{StaticResource UiTextInput}"
|
||
Text="{Binding SeriesName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||
HorizontalAlignment="Stretch" />
|
||
<TextBlock Margin="8,0,0,0"
|
||
VerticalAlignment="Center"
|
||
IsHitTestVisible="False"
|
||
Text="Введите имя сериала...">
|
||
<TextBlock.Style>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource UiTextCaption}">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding Text, ElementName=SeriesNameBox}" Value="">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBlock.Style>
|
||
</TextBlock>
|
||
</Grid>
|
||
</Grid>
|
||
</StackPanel>
|
||
|
||
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right" Margin="12,0,0,0">
|
||
<Button Style="{StaticResource UiButtonSecondary}" MinWidth="108" Margin="0,0,8,0" Command="{Binding RefreshPreviewCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Обновить" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button Style="{StaticResource UiButtonPrimary}" MinWidth="108" Command="{Binding RunRenameCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphOnPrimary}" Text="" />
|
||
<TextBlock Text="Запустить" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</Grid>
|
||
|
||
<Grid Grid.Row="1">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="6" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<Border Grid.Column="0"
|
||
Padding="6"
|
||
Background="{DynamicResource Ui.Brush.Surface}"
|
||
behaviors:SeriesRenamerDropTargetBehavior.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 IsRootTreeDragOver}" Value="True">
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.Accent}" />
|
||
<Setter Property="BorderThickness" Value="2" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Border.Style>
|
||
<TreeView ItemsSource="{Binding CurrentTree}"
|
||
BorderThickness="0"
|
||
Background="Transparent"
|
||
ItemContainerStyle="{StaticResource SeriesTreeItemStyle}"
|
||
behaviors:TreeViewScrollSyncBehavior.SyncGroup="SeriesRenameTrees">
|
||
<TreeView.Resources>
|
||
<HierarchicalDataTemplate DataType="{x:Type viewModels:RenameTreeNodeViewModel}" ItemsSource="{Binding Children}">
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTree}" Text="{Binding IconGlyph}" />
|
||
<TextBlock Text="{Binding Name}" />
|
||
</StackPanel>
|
||
</HierarchicalDataTemplate>
|
||
</TreeView.Resources>
|
||
</TreeView>
|
||
</Border>
|
||
|
||
<GridSplitter Grid.Column="1" Width="6" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{DynamicResource Ui.Brush.BorderSubtle}" ShowsPreview="True" />
|
||
|
||
<Border Grid.Column="2" BorderBrush="{DynamicResource Ui.Brush.BorderSubtle}" BorderThickness="1" Background="{DynamicResource Ui.Brush.Surface}" Padding="6">
|
||
<Grid>
|
||
<Grid>
|
||
<Grid.Style>
|
||
<Style TargetType="Grid">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding IsPreviewSupported}" Value="False">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Grid.Style>
|
||
<TreeView ItemsSource="{Binding PreviewTree}"
|
||
BorderThickness="0"
|
||
Background="Transparent"
|
||
ItemContainerStyle="{StaticResource SeriesTreeItemStyle}"
|
||
behaviors:TreeViewScrollSyncBehavior.SyncGroup="SeriesRenameTrees">
|
||
<TreeView.Resources>
|
||
<HierarchicalDataTemplate DataType="{x:Type viewModels:RenameTreeNodeViewModel}" ItemsSource="{Binding Children}">
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTree}" Text="{Binding IconGlyph}" />
|
||
<TextBlock Text="{Binding Name}" />
|
||
</StackPanel>
|
||
</HierarchicalDataTemplate>
|
||
</TreeView.Resources>
|
||
</TreeView>
|
||
</Grid>
|
||
|
||
<Grid>
|
||
<Grid.Style>
|
||
<Style TargetType="Grid">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding IsPreviewSupported}" Value="False">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Grid.Style>
|
||
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphEmpty}" Text="" />
|
||
<TextBlock Style="{StaticResource UiTextH2}" Text="Невозможно построить предпросмотр" Margin="0,8,0,0" HorizontalAlignment="Center" />
|
||
<TextBlock Style="{StaticResource UiTextCaption}" Text="Проверьте структуру каталогов" HorizontalAlignment="Center" Margin="0,4,0,0" />
|
||
<TextBlock Style="{StaticResource UiTextCaption}" Text="{Binding UnsupportedReason}" HorizontalAlignment="Center" Margin="0,4,0,0" TextWrapping="Wrap" MaxWidth="320" />
|
||
</StackPanel>
|
||
</Grid>
|
||
</Grid>
|
||
</Border>
|
||
</Grid>
|
||
</Grid>
|
||
</TabItem>
|
||
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTab}" Text="" />
|
||
<TextBlock Text="Конвертация" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<views:ConversionView DataContext="{Binding Conversion}" />
|
||
</TabItem>
|
||
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTab}" Text="" />
|
||
<TextBlock Text="Объединение" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<views:MergeView DataContext="{Binding Merge}" />
|
||
</TabItem>
|
||
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTab}" Text="" />
|
||
<TextBlock Text="Извлечение дорожек" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<views:TrackExtractionView DataContext="{Binding TrackExtraction}" />
|
||
</TabItem>
|
||
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTab}" Text="" />
|
||
<TextBlock Text="Video info" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<Grid DataContext="{Binding VideoInfo}">
|
||
<TabControl Style="{StaticResource UiTabControl}" SelectedIndex="{Binding SelectedSubTabIndex, Mode=TwoWay}">
|
||
<TabItem Header="Краткая информация">
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="*" />
|
||
</Grid.RowDefinitions>
|
||
<Border Grid.Row="0"
|
||
BorderBrush="{DynamicResource Ui.Brush.BorderSubtle}"
|
||
BorderThickness="0,0,0,1"
|
||
Padding="0,0,0,8"
|
||
Margin="0,0,0,8">
|
||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
|
||
<Button Style="{StaticResource UiButtonSecondary}"
|
||
MinWidth="132"
|
||
Command="{Binding SelectSummaryFilesCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Выбрать файлы" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</Border>
|
||
<Border Grid.Row="1"
|
||
Padding="8"
|
||
Background="{DynamicResource Ui.Brush.Surface}"
|
||
behaviors:VideoInfoDropTargetBehavior.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 IsVideoInfoDropHighlight}" Value="True">
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.Accent}" />
|
||
<Setter Property="BorderThickness" Value="2" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Border.Style>
|
||
<Grid>
|
||
<Grid>
|
||
<Grid.Style>
|
||
<Style TargetType="Grid">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding HasSummaryData}" Value="False">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Grid.Style>
|
||
<TextBox Text="{Binding SummaryText, Mode=OneWay}"
|
||
IsReadOnly="True"
|
||
AcceptsReturn="True"
|
||
VerticalScrollBarVisibility="Auto"
|
||
HorizontalScrollBarVisibility="Auto"
|
||
FontFamily="Consolas"
|
||
TextWrapping="NoWrap"
|
||
VerticalAlignment="Stretch"
|
||
HorizontalAlignment="Stretch"
|
||
Style="{StaticResource UiLog}" />
|
||
</Grid>
|
||
<Grid>
|
||
<Grid.Style>
|
||
<Style TargetType="Grid">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding HasSummaryData}" Value="False">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Grid.Style>
|
||
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphEmpty}" Text="" />
|
||
<TextBlock Style="{StaticResource UiTextH2}"
|
||
Margin="0,8,0,0"
|
||
HorizontalAlignment="Center"
|
||
Text="Нет данных для отображения" />
|
||
</StackPanel>
|
||
</Grid>
|
||
</Grid>
|
||
</Border>
|
||
</Grid>
|
||
</TabItem>
|
||
<TabItem Header="Подробная информация">
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="*" />
|
||
</Grid.RowDefinitions>
|
||
<Grid Grid.Row="0" Margin="0,0,0,12">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="8" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<Grid Grid.Column="0">
|
||
<TextBox x:Name="VideoInfoFilePathBox"
|
||
Style="{StaticResource UiTextInput}"
|
||
Text="{Binding SelectedFilePath, Mode=OneWay}"
|
||
IsReadOnly="True"
|
||
HorizontalAlignment="Stretch" />
|
||
<TextBlock Margin="8,0,0,0"
|
||
VerticalAlignment="Center"
|
||
IsHitTestVisible="False"
|
||
Text="Выберите видеофайл для анализа...">
|
||
<TextBlock.Style>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource UiTextCaption}">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding Text, ElementName=VideoInfoFilePathBox}" Value="">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBlock.Style>
|
||
</TextBlock>
|
||
</Grid>
|
||
<Button Grid.Column="2"
|
||
MinWidth="100"
|
||
Style="{StaticResource UiButtonSecondary}"
|
||
Command="{Binding SelectFileCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Выбрать" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</Grid>
|
||
|
||
<Border Grid.Row="1"
|
||
BorderBrush="{DynamicResource Ui.Brush.BorderSubtle}"
|
||
BorderThickness="0,0,0,1"
|
||
Padding="0,0,0,8"
|
||
Margin="0,0,0,8">
|
||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
|
||
<Button Style="{StaticResource UiButtonSecondary}" Margin="0,0,8,0" MinWidth="126" Command="{Binding ExpandAllCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Text="Развернуть всё" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button Style="{StaticResource UiButtonSecondary}" Margin="0,0,8,0" MinWidth="126" Command="{Binding CollapseAllCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Text="Свернуть всё" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button Style="{StaticResource UiButtonSecondary}" Margin="0,0,8,0" MinWidth="132" Command="{Binding CopyJsonCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Копировать JSON" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button Style="{StaticResource UiButtonSecondary}" MinWidth="130" Command="{Binding SaveJsonCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Сохранить JSON" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</Border>
|
||
|
||
<Border Grid.Row="2"
|
||
Padding="8,4,8,8"
|
||
Background="{DynamicResource Ui.Brush.Surface}"
|
||
behaviors:VideoInfoDropTargetBehavior.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 IsVideoInfoDropHighlight}" Value="True">
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.Accent}" />
|
||
<Setter Property="BorderThickness" Value="2" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Border.Style>
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="*" />
|
||
</Grid.RowDefinitions>
|
||
<Grid.Resources>
|
||
<Style x:Key="VideoInfoTreeItemStyle" TargetType="TreeViewItem">
|
||
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
|
||
<Setter Property="Padding" Value="2,1" />
|
||
<Setter Property="Margin" Value="0,0,0,1" />
|
||
<Setter Property="Background" Value="Transparent" />
|
||
<Setter Property="Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
||
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
|
||
<EventSetter Event="PreviewMouseRightButtonDown" Handler="OnJsonTreeItemPreviewMouseRightButtonDown" />
|
||
<Setter Property="ContextMenu">
|
||
<Setter.Value>
|
||
<ContextMenu DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
|
||
<MenuItem Header="Копировать значение"
|
||
Command="{Binding DataContext.VideoInfo.CopyNodeValueCommand, Source={x:Reference RootWindow}}"
|
||
CommandParameter="{Binding}" />
|
||
<MenuItem Header="Копировать узел"
|
||
Command="{Binding DataContext.VideoInfo.CopyNodeLineCommand, Source={x:Reference RootWindow}}"
|
||
CommandParameter="{Binding}" />
|
||
<MenuItem Header="Копировать узел с дочерними элементами"
|
||
Command="{Binding DataContext.VideoInfo.CopyNodeWithChildrenCommand, Source={x:Reference RootWindow}}"
|
||
CommandParameter="{Binding}" />
|
||
<Separator />
|
||
<MenuItem Header="Копировать путь к узлу"
|
||
Command="{Binding DataContext.VideoInfo.CopyNodePathCommand, Source={x:Reference RootWindow}}"
|
||
CommandParameter="{Binding}" />
|
||
</ContextMenu>
|
||
</Setter.Value>
|
||
</Setter>
|
||
<Style.Triggers>
|
||
<Trigger Property="IsSelected" Value="True">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.DataRowSelected}" />
|
||
<Setter Property="Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
||
<Setter Property="TextElement.Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
||
</Trigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Grid.Resources>
|
||
|
||
<Grid Grid.RowSpan="2">
|
||
<Grid.Style>
|
||
<Style TargetType="Grid">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding SelectedFilePath}" Value="">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Grid.Style>
|
||
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphEmpty}" Text="" />
|
||
<TextBlock Style="{StaticResource UiTextH2}"
|
||
Margin="0,8,0,0"
|
||
HorizontalAlignment="Center"
|
||
Text="Нет данных для отображения" />
|
||
<TextBlock Style="{StaticResource UiTextCaption}"
|
||
Margin="0,4,0,0"
|
||
HorizontalAlignment="Center"
|
||
Text="Выберите файл для получения информации через ffprobe" />
|
||
</StackPanel>
|
||
</Grid>
|
||
|
||
<TextBlock Grid.Row="0"
|
||
Text="{Binding ErrorMessage}"
|
||
Margin="0,0,0,8"
|
||
TextWrapping="Wrap">
|
||
<TextBlock.Style>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource UiTextError}">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
<Style.Triggers>
|
||
<Trigger Property="Text" Value="">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
</Trigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBlock.Style>
|
||
</TextBlock>
|
||
|
||
<TreeView Grid.Row="1" ItemsSource="{Binding JsonNodes}" Margin="0" BorderThickness="0" Background="Transparent">
|
||
<TreeView.Style>
|
||
<Style TargetType="TreeView">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding SelectedFilePath}" Value="">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TreeView.Style>
|
||
<TreeView.Resources>
|
||
<HierarchicalDataTemplate DataType="{x:Type viewModels:JsonTreeNodeViewModel}" ItemsSource="{Binding Children}">
|
||
<Border Background="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=Background}" Padding="2,1">
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Text="{Binding Name}" />
|
||
<TextBlock Text=": " />
|
||
<TextBlock Text="{Binding Value}" Foreground="{DynamicResource Ui.Brush.Muted}" />
|
||
</StackPanel>
|
||
<Border.Style>
|
||
<Style TargetType="Border">
|
||
<Setter Property="Background" Value="Transparent" />
|
||
<Style.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.DataRowHover}" />
|
||
</Trigger>
|
||
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsSelected}" Value="True">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.DataRowSelected}" />
|
||
<Setter Property="TextElement.Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Border.Style>
|
||
</Border>
|
||
</HierarchicalDataTemplate>
|
||
</TreeView.Resources>
|
||
<TreeView.ItemContainerStyle>
|
||
<StaticResource ResourceKey="VideoInfoTreeItemStyle" />
|
||
</TreeView.ItemContainerStyle>
|
||
</TreeView>
|
||
</Grid>
|
||
</Border>
|
||
</Grid>
|
||
</TabItem>
|
||
</TabControl>
|
||
</Grid>
|
||
</TabItem>
|
||
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTab}" Text="" />
|
||
<TextBlock Text="Настройки" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<TabItem.Resources>
|
||
<Style x:Key="SettingsGroupBox" TargetType="GroupBox">
|
||
<Setter Property="Padding" Value="6,4,6,6" />
|
||
<Setter Property="Margin" Value="0" />
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.BorderSubtle}" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="FontSize" Value="11" />
|
||
</Style>
|
||
<Style x:Key="SettingsLabel" TargetType="TextBlock" BasedOn="{StaticResource UiTextCaption}">
|
||
<Setter Property="VerticalAlignment" Value="Center" />
|
||
<Setter Property="Margin" Value="0,0,6,0" />
|
||
</Style>
|
||
<Style x:Key="SettingsTextBox" TargetType="TextBox" BasedOn="{StaticResource UiTextInput}">
|
||
<Setter Property="Height" Value="26" />
|
||
<Setter Property="MinHeight" Value="26" />
|
||
<Setter Property="Padding" Value="6,2" />
|
||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||
</Style>
|
||
<Style x:Key="SettingsComboBox" TargetType="ComboBox" BasedOn="{StaticResource UiCombo}">
|
||
<Setter Property="Height" Value="26" />
|
||
<Setter Property="MinHeight" Value="26" />
|
||
<Setter Property="Padding" Value="6,1" />
|
||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||
</Style>
|
||
<Style x:Key="SettingsButton" TargetType="Button" BasedOn="{StaticResource UiButtonSecondary}">
|
||
<Setter Property="Height" Value="28" />
|
||
<Setter Property="MinHeight" Value="28" />
|
||
<Setter Property="Padding" Value="8,1" />
|
||
<Setter Property="FontSize" Value="12" />
|
||
</Style>
|
||
<Style x:Key="SettingsPrimaryButton" TargetType="Button" BasedOn="{StaticResource UiButtonPrimary}">
|
||
<Setter Property="Height" Value="28" />
|
||
<Setter Property="MinHeight" Value="28" />
|
||
<Setter Property="Padding" Value="8,1" />
|
||
<Setter Property="FontSize" Value="12" />
|
||
</Style>
|
||
<Style x:Key="SettingsDangerButton" TargetType="Button" BasedOn="{StaticResource UiButtonDanger}">
|
||
<Setter Property="Height" Value="28" />
|
||
<Setter Property="MinHeight" Value="28" />
|
||
<Setter Property="Padding" Value="8,1" />
|
||
<Setter Property="FontSize" Value="12" />
|
||
</Style>
|
||
<Style x:Key="SettingsDataGridHeader" TargetType="DataGridColumnHeader" BasedOn="{StaticResource UiDataGridColumnHeader}">
|
||
<Setter Property="Height" Value="26" />
|
||
<Setter Property="MinHeight" Value="26" />
|
||
<Setter Property="Padding" Value="4,2" />
|
||
<Setter Property="FontSize" Value="11" />
|
||
</Style>
|
||
<Style x:Key="SettingsDataGridCell" TargetType="DataGridCell" BasedOn="{StaticResource UiDataGridCell}">
|
||
<Setter Property="Padding" Value="4,0" />
|
||
<Setter Property="FontSize" Value="11" />
|
||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||
</Style>
|
||
<Style x:Key="SettingsDataGridRow" TargetType="DataGridRow" BasedOn="{StaticResource UiDataGridRow}">
|
||
<Setter Property="Height" Value="26" />
|
||
<Setter Property="MinHeight" Value="26" />
|
||
</Style>
|
||
</TabItem.Resources>
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="6" />
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="*" />
|
||
<RowDefinition Height="Auto" />
|
||
</Grid.RowDefinitions>
|
||
|
||
<Grid Grid.Row="0">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="2.2*" />
|
||
<ColumnDefinition Width="6" />
|
||
<ColumnDefinition Width="1.35*" />
|
||
<ColumnDefinition Width="6" />
|
||
<ColumnDefinition Width="1.15*" />
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<GroupBox Grid.Column="0" Header="Пути" Style="{StaticResource SettingsGroupBox}">
|
||
<Grid>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="76" />
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="4" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<TextBlock Grid.Column="0" Text="TEMP" Style="{StaticResource SettingsLabel}" />
|
||
<Grid Grid.Column="1">
|
||
<TextBox x:Name="SettingsTempPathBox"
|
||
Style="{StaticResource SettingsTextBox}"
|
||
HorizontalAlignment="Stretch"
|
||
Text="{Binding ProcessingTempDirectory, UpdateSourceTrigger=PropertyChanged}" />
|
||
<TextBlock Margin="6,0,0,0"
|
||
VerticalAlignment="Center"
|
||
IsHitTestVisible="False"
|
||
Text="C:\Users\me\AppData\Local\Temp\EmbyToolbox">
|
||
<TextBlock.Style>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource UiTextCaption}">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding Text, ElementName=SettingsTempPathBox}" Value="">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBlock.Style>
|
||
</TextBlock>
|
||
</Grid>
|
||
<Button Grid.Column="3"
|
||
MinWidth="74"
|
||
Style="{StaticResource SettingsButton}"
|
||
Command="{Binding ChooseTempDirectoryCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Обзор" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</Grid>
|
||
</GroupBox>
|
||
|
||
<GroupBox Grid.Column="2" Header="Выполнение" Style="{StaticResource SettingsGroupBox}">
|
||
<Grid>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="74" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="26" />
|
||
<RowDefinition Height="4" />
|
||
<RowDefinition Height="26" />
|
||
</Grid.RowDefinitions>
|
||
<TextBlock Grid.Row="0" Grid.Column="0" Text="Лог" Style="{StaticResource SettingsLabel}" />
|
||
<ComboBox Grid.Row="0"
|
||
Grid.Column="1"
|
||
Style="{StaticResource SettingsComboBox}"
|
||
ItemsSource="{Binding LogLevelOptions}"
|
||
SelectedItem="{Binding MinimumFileLogLevel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
<TextBlock Grid.Row="2" Grid.Column="0" Text="GPU" Style="{StaticResource SettingsLabel}" />
|
||
<ComboBox Grid.Row="2"
|
||
Grid.Column="1"
|
||
Style="{StaticResource SettingsComboBox}"
|
||
ItemsSource="{Binding HardwareAccelerationOptions}"
|
||
SelectedItem="{Binding HardwareAcceleration, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</Grid>
|
||
</GroupBox>
|
||
|
||
<GroupBox Grid.Column="4" Header="Уведомления" Style="{StaticResource SettingsGroupBox}">
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="24" />
|
||
<RowDefinition Height="24" />
|
||
<RowDefinition Height="4" />
|
||
<RowDefinition Height="28" />
|
||
</Grid.RowDefinitions>
|
||
<CheckBox Grid.Row="0"
|
||
Margin="0"
|
||
VerticalAlignment="Center"
|
||
IsChecked="{Binding NotifyCompletionSoundAfterQueue, Mode=TwoWay}">
|
||
<TextBlock Text="Звук после очереди" VerticalAlignment="Center" />
|
||
</CheckBox>
|
||
<CheckBox Grid.Row="1"
|
||
Margin="0"
|
||
VerticalAlignment="Center"
|
||
IsChecked="{Binding NotifyWindowsToastAfterQueue, Mode=TwoWay}">
|
||
<TextBlock Text="Windows toast" VerticalAlignment="Center" />
|
||
</CheckBox>
|
||
<Button Grid.Row="3"
|
||
MinWidth="118"
|
||
HorizontalAlignment="Left"
|
||
Style="{StaticResource SettingsButton}"
|
||
Command="{Binding TestWindowsNotificationCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Тест" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</Grid>
|
||
</GroupBox>
|
||
</Grid>
|
||
|
||
<Grid Grid.Row="2" Margin="0,0,0,4">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto" />
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<TextBlock Grid.Column="0"
|
||
Text="Профили конвертации"
|
||
Style="{StaticResource UiTextH2}"
|
||
VerticalAlignment="Center" />
|
||
<StackPanel Grid.Column="2" Orientation="Horizontal">
|
||
<Button Style="{StaticResource SettingsButton}" Margin="0,0,6,0" MinWidth="104" Command="{Binding AddConversionProfileCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Добавить" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button Style="{StaticResource SettingsDangerButton}" MinWidth="96" Command="{Binding RemoveConversionProfileCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Удалить" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</Grid>
|
||
|
||
<DataGrid Grid.Row="3"
|
||
ItemsSource="{Binding ConversionProfiles}"
|
||
SelectedItem="{Binding SelectedConversionProfile, Mode=TwoWay}"
|
||
AutoGenerateColumns="False"
|
||
CanUserAddRows="False"
|
||
CanUserDeleteRows="False"
|
||
IsReadOnly="False"
|
||
Style="{StaticResource UiDataGrid}"
|
||
RowStyle="{StaticResource SettingsDataGridRow}"
|
||
ColumnHeaderStyle="{StaticResource SettingsDataGridHeader}"
|
||
CellStyle="{StaticResource SettingsDataGridCell}"
|
||
HeadersVisibility="Column"
|
||
GridLinesVisibility="All"
|
||
RowHeight="26"
|
||
ColumnHeaderHeight="26"
|
||
ScrollViewer.HorizontalScrollBarVisibility="Auto"
|
||
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||
MinHeight="0">
|
||
<DataGrid.Resources>
|
||
<Style TargetType="TextBlock">
|
||
<Setter Property="VerticalAlignment" Value="Center" />
|
||
<Setter Property="FontSize" Value="11" />
|
||
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
|
||
</Style>
|
||
<Style TargetType="TextBox" BasedOn="{StaticResource SettingsTextBox}">
|
||
<Setter Property="Height" Value="24" />
|
||
<Setter Property="MinHeight" Value="24" />
|
||
<Setter Property="Padding" Value="4,0" />
|
||
</Style>
|
||
<Style TargetType="ComboBox" BasedOn="{StaticResource SettingsComboBox}">
|
||
<Setter Property="Height" Value="24" />
|
||
<Setter Property="MinHeight" Value="24" />
|
||
<Setter Property="Padding" Value="4,0" />
|
||
</Style>
|
||
</DataGrid.Resources>
|
||
<DataGrid.Columns>
|
||
<DataGridTemplateColumn Header="Профиль" Width="150">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<Grid>
|
||
<TextBlock Text="{Binding Profile, Mode=OneWay}" VerticalAlignment="Center" Foreground="{DynamicResource Ui.Brush.Text}">
|
||
<TextBlock.Style>
|
||
<Style TargetType="TextBlock">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding IsBuiltIn}" Value="True">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBlock.Style>
|
||
</TextBlock>
|
||
<TextBox Text="{Binding Profile, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||
VerticalAlignment="Center">
|
||
<TextBox.Style>
|
||
<Style TargetType="TextBox" BasedOn="{StaticResource UiTextInput}">
|
||
<Setter Property="Visibility" Value="Visible" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding IsBuiltIn}" Value="True">
|
||
<Setter Property="Visibility" Value="Collapsed" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</TextBox.Style>
|
||
</TextBox>
|
||
</Grid>
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Контейнер" Width="100">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding Container}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionContainerOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding Container, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Видео" Width="100">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding Video}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionVideoCodecOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding Video, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Pixel Format" Width="120">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding PixelFormat}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionPixelFormatOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding PixelFormat, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Разрешение" Width="145">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding Resolution}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionResolutionOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding Resolution, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="FPS" Width="130">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding Fps}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionFpsOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding Fps, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Аудио" Width="100">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding Audio}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionAudioCodecOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding Audio, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Битрейт" Width="110">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding Bitrate}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionBitrateOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding Bitrate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Видеобитрейт" Width="120">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding VideoBitrateMode}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionVideoBitrateOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding VideoBitrateMode, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Субтитры" Width="95">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding Subtitles}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionYesNoOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding Subtitles, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Внешние дорожки" Width="125">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding ExternalTracks}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionYesNoOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding ExternalTracks, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Внешние субтитры" Width="135">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding ExternalSubtitles}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionYesNoOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding ExternalSubtitles, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn Header="Шрифты" Width="85">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding Fonts}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
<DataGridTemplateColumn.CellEditingTemplate>
|
||
<DataTemplate>
|
||
<ComboBox ItemsSource="{Binding DataContext.ConversionYesNoOptions, ElementName=RootWindow}"
|
||
SelectedItem="{Binding Fonts, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellEditingTemplate>
|
||
</DataGridTemplateColumn>
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
|
||
<Grid Grid.Row="4" Margin="0,6,0,0">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto" />
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<Button Grid.Column="0"
|
||
Style="{StaticResource SettingsButton}"
|
||
MinWidth="154"
|
||
HorizontalAlignment="Left"
|
||
Command="{Binding CheckToolsCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Проверить инструменты" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||
<Button Style="{StaticResource SettingsButton}"
|
||
MinWidth="96"
|
||
Margin="0,0,8,0"
|
||
Command="{Binding CancelSettingsCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Отменить" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button Style="{StaticResource SettingsPrimaryButton}"
|
||
MinWidth="98"
|
||
Command="{Binding SaveSettingsCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphOnPrimary}" Text="" />
|
||
<TextBlock Text="Сохранить" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</Grid>
|
||
</Grid>
|
||
</TabItem>
|
||
|
||
<TabItem>
|
||
<TabItem.Header>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphTab}" Text="" />
|
||
<TextBlock Text="Логи" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</TabItem.Header>
|
||
<views:LogsView DataContext="{Binding Logs}" />
|
||
</TabItem>
|
||
</TabControl>
|
||
|
||
<Border Grid.Row="1"
|
||
Margin="0,8,0,0"
|
||
Padding="8,4"
|
||
BorderBrush="{DynamicResource Ui.Brush.BorderSubtle}"
|
||
BorderThickness="1"
|
||
Background="{DynamicResource Ui.Brush.Surface}">
|
||
<Grid>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto" MinWidth="100" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<TextBlock Grid.Column="0"
|
||
VerticalAlignment="Center"
|
||
HorizontalAlignment="Left"
|
||
Foreground="{DynamicResource Ui.Brush.Text}"
|
||
FontWeight="SemiBold"
|
||
Text="{Binding AppStatusText}" />
|
||
|
||
<Grid Grid.Column="1"
|
||
Margin="14,0,0,0"
|
||
VerticalAlignment="Center">
|
||
<TextBlock VerticalAlignment="Center"
|
||
Foreground="{DynamicResource Ui.Brush.Caption}"
|
||
Text="Нет задач"
|
||
Visibility="{Binding ShowLongOperationIdlePlaceholder, Converter={StaticResource BoolToVis}}" />
|
||
|
||
<Grid VerticalAlignment="Center"
|
||
Visibility="{Binding IsLongOperationRunning, Converter={StaticResource BoolToVis}}">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto" />
|
||
<ColumnDefinition Width="*" MinWidth="24" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<ProgressBar Grid.Column="0"
|
||
Width="210"
|
||
Height="10"
|
||
MinHeight="8"
|
||
MaxHeight="12"
|
||
Style="{StaticResource UiProgressBar}"
|
||
VerticalAlignment="Center"
|
||
Minimum="0"
|
||
Maximum="100"
|
||
Value="{Binding LongOperationProgressPercent, Mode=OneWay}" />
|
||
|
||
<TextBlock Grid.Column="1"
|
||
Margin="10,0,8,0"
|
||
VerticalAlignment="Center"
|
||
TextTrimming="CharacterEllipsis"
|
||
Foreground="{DynamicResource Ui.Brush.Text}"
|
||
Text="{Binding LongOperationProgressText, Mode=OneWay}" />
|
||
|
||
<TextBlock Grid.Column="2"
|
||
VerticalAlignment="Center"
|
||
MinWidth="58"
|
||
TextAlignment="Right"
|
||
Foreground="{DynamicResource Ui.Brush.Text}"
|
||
Text="{Binding LongOperationProgressPercent, Mode=OneWay, StringFormat={}{0:F2}%}" />
|
||
</Grid>
|
||
</Grid>
|
||
</Grid>
|
||
</Border>
|
||
</Grid>
|
||
</Window>
|