1063 lines
57 KiB
XML
1063 lines
57 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>
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="*" />
|
||
<RowDefinition Height="Auto" />
|
||
</Grid.RowDefinitions>
|
||
|
||
<ScrollViewer Grid.Row="0"
|
||
VerticalAlignment="Stretch"
|
||
HorizontalContentAlignment="Stretch"
|
||
VerticalScrollBarVisibility="Auto"
|
||
HorizontalScrollBarVisibility="Disabled"
|
||
Padding="0">
|
||
<Border Style="{StaticResource UiSectionCard}"
|
||
Margin="0,0,0,12"
|
||
HorizontalAlignment="Stretch">
|
||
<StackPanel HorizontalAlignment="Stretch">
|
||
<TextBlock Style="{StaticResource UiTextH2}" Text="Каталоги" />
|
||
|
||
<TextBlock Style="{StaticResource UiTextCaption}"
|
||
Margin="0,12,0,4"
|
||
Text="TEMP-каталог" />
|
||
|
||
<Grid HorizontalAlignment="Stretch">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="8" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<Grid Grid.Column="0">
|
||
<TextBox x:Name="SettingsTempPathBox"
|
||
Style="{StaticResource UiTextInput}"
|
||
HorizontalAlignment="Stretch"
|
||
Text="{Binding ProcessingTempDirectory, UpdateSourceTrigger=PropertyChanged}" />
|
||
<TextBlock Margin="8,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="2"
|
||
MinWidth="100"
|
||
Style="{StaticResource UiButtonSecondary}"
|
||
Command="{Binding ChooseTempDirectoryCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Выбрать" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</Grid>
|
||
|
||
<TextBlock Style="{StaticResource UiTextCaption}"
|
||
Margin="0,6,0,0"
|
||
Text="Временный каталог для промежуточных файлов" />
|
||
|
||
<TextBlock Style="{StaticResource UiTextCaption}"
|
||
Margin="0,12,0,4"
|
||
Text="Минимальный уровень сохранения логов" />
|
||
<ComboBox Style="{StaticResource UiCombo}"
|
||
MinWidth="200"
|
||
Margin="0,0,24,0"
|
||
HorizontalAlignment="Stretch"
|
||
ItemsSource="{Binding LogLevelOptions}"
|
||
SelectedItem="{Binding MinimumFileLogLevel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
|
||
<TextBlock Style="{StaticResource UiTextCaption}"
|
||
Margin="0,12,0,4"
|
||
Text="Аппаратное ускорение" />
|
||
<ComboBox Style="{StaticResource UiCombo}"
|
||
MinWidth="200"
|
||
Margin="0,0,24,0"
|
||
HorizontalAlignment="Stretch"
|
||
ItemsSource="{Binding HardwareAccelerationOptions}"
|
||
SelectedItem="{Binding HardwareAcceleration, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
|
||
<TextBlock Style="{StaticResource UiTextH2}" Margin="0,16,0,8" Text="Уведомления о конвертации" />
|
||
|
||
<CheckBox Margin="0,8,0,0"
|
||
HorizontalContentAlignment="Stretch"
|
||
VerticalContentAlignment="Top"
|
||
FocusVisualStyle="{x:Null}"
|
||
IsChecked="{Binding NotifyCompletionSoundAfterQueue, Mode=TwoWay}">
|
||
<CheckBox.ToolTip>
|
||
<ToolTip MaxWidth="360">
|
||
<TextBlock TextWrapping="Wrap"
|
||
Text="После обработки всей очереди конвертации воспроизводится системный звук успеха или ошибки (Windows)." />
|
||
</ToolTip>
|
||
</CheckBox.ToolTip>
|
||
<TextBlock Text="Звуковое уведомление после завершения"
|
||
TextWrapping="Wrap"
|
||
VerticalAlignment="Center" />
|
||
</CheckBox>
|
||
|
||
<CheckBox Margin="0,6,0,0"
|
||
HorizontalContentAlignment="Stretch"
|
||
VerticalContentAlignment="Top"
|
||
FocusVisualStyle="{x:Null}"
|
||
IsChecked="{Binding NotifyWindowsToastAfterQueue, Mode=TwoWay}">
|
||
<CheckBox.ToolTip>
|
||
<ToolTip MaxWidth="360">
|
||
<TextBlock TextWrapping="Wrap"
|
||
Text="В центре уведомлений показывается итог обработки всей очереди (или сообщение при остановке пользователем)." />
|
||
</ToolTip>
|
||
</CheckBox.ToolTip>
|
||
<TextBlock Text="Показывать уведомления Windows"
|
||
TextWrapping="Wrap"
|
||
VerticalAlignment="Center" />
|
||
</CheckBox>
|
||
|
||
<Button Margin="0,12,0,0"
|
||
MinHeight="34"
|
||
MinWidth="240"
|
||
HorizontalAlignment="Stretch"
|
||
HorizontalContentAlignment="Center"
|
||
Style="{StaticResource UiButtonSecondary}"
|
||
Command="{Binding TestWindowsNotificationCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Margin="8,0,0,0"
|
||
VerticalAlignment="Center"
|
||
TextWrapping="Wrap"
|
||
Text="Проверить уведомление" />
|
||
</StackPanel>
|
||
</Button>
|
||
|
||
<TextBlock Style="{StaticResource UiTextH2}" Margin="0,16,0,8" Text="Профили конвертации" />
|
||
<DataGrid ItemsSource="{Binding ConversionProfiles}"
|
||
SelectedItem="{Binding SelectedConversionProfile, Mode=TwoWay}"
|
||
AutoGenerateColumns="False"
|
||
CanUserAddRows="False"
|
||
CanUserDeleteRows="False"
|
||
IsReadOnly="False"
|
||
Style="{StaticResource UiDataGrid}"
|
||
RowStyle="{StaticResource UiDataGridRow}"
|
||
ColumnHeaderStyle="{StaticResource UiDataGridColumnHeader}"
|
||
CellStyle="{StaticResource UiDataGridCell}"
|
||
HeadersVisibility="Column"
|
||
GridLinesVisibility="Horizontal"
|
||
ScrollViewer.HorizontalScrollBarVisibility="Auto"
|
||
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||
MinHeight="160">
|
||
<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>
|
||
<StackPanel Orientation="Horizontal" Margin="0,8,0,0" HorizontalAlignment="Left">
|
||
<Button Style="{StaticResource UiButtonSecondary}" Margin="0,0,8,0" MinWidth="150" Command="{Binding AddConversionProfileCommand}">
|
||
<TextBlock Text="Добавить профиль" />
|
||
</Button>
|
||
<Button Style="{StaticResource UiButtonDanger}" MinWidth="150" Command="{Binding RemoveConversionProfileCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Удалить профиль" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</StackPanel>
|
||
</Border>
|
||
</ScrollViewer>
|
||
|
||
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right">
|
||
<Button Style="{StaticResource UiButtonSecondary}"
|
||
MinWidth="168"
|
||
Margin="0,0,8,0"
|
||
Command="{Binding CheckToolsCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock Text="Проверить инструменты" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button Style="{StaticResource UiButtonSecondary}"
|
||
MinWidth="112"
|
||
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 UiButtonPrimary}"
|
||
MinWidth="112"
|
||
Command="{Binding SaveSettingsCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphOnPrimary}" Text="" />
|
||
<TextBlock Text="Сохранить" VerticalAlignment="Center" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</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>
|