517 lines
29 KiB
XML
517 lines
29 KiB
XML
<UserControl x:Class="EmbyToolbox.Views.ConversionView"
|
||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||
xmlns:models="clr-namespace:EmbyToolbox.Models"
|
||
xmlns:vm="clr-namespace:EmbyToolbox.ViewModels"
|
||
xmlns:behaviors="clr-namespace:EmbyToolbox.Behaviors"
|
||
xmlns:converters="clr-namespace:EmbyToolbox.Converters"
|
||
mc:Ignorable="d"
|
||
d:DesignWidth="900"
|
||
d:DesignHeight="600">
|
||
<UserControl.Resources>
|
||
<converters:BooleanToVisibilityConverter x:Key="BoolToVis" />
|
||
<Style x:Key="QueueDataGridColumnHeader" TargetType="DataGridColumnHeader" BasedOn="{StaticResource UiDataGridColumnHeader}">
|
||
<Setter Property="Height" Value="NaN" />
|
||
<Setter Property="MinHeight" Value="40" />
|
||
<Setter Property="Padding" Value="4,6" />
|
||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
||
</Style>
|
||
<Style x:Key="QueueDataGridCell" TargetType="DataGridCell" BasedOn="{StaticResource UiDataGridCell}">
|
||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||
</Style>
|
||
<!-- Две строки текста (FontSize 11, LineHeight 16), обрезка лишнего -->
|
||
<Style x:Key="QueueTextBlockTwoLine" TargetType="TextBlock" BasedOn="{StaticResource UiDataGridTextElement}">
|
||
<Setter Property="FontSize" Value="11" />
|
||
<Setter Property="LineHeight" Value="16" />
|
||
<Setter Property="LineStackingStrategy" Value="BlockLineHeight" />
|
||
<Setter Property="MaxHeight" Value="32" />
|
||
<Setter Property="TextWrapping" Value="Wrap" />
|
||
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
|
||
<Setter Property="VerticalAlignment" Value="Center" />
|
||
</Style>
|
||
<Style x:Key="QueueTextBlockCellSingle" TargetType="TextBlock" BasedOn="{StaticResource UiDataGridTextElement}">
|
||
<Setter Property="VerticalAlignment" Value="Center" />
|
||
</Style>
|
||
</UserControl.Resources>
|
||
<Border BorderBrush="{DynamicResource Ui.Brush.BorderSubtle}"
|
||
BorderThickness="1"
|
||
Background="{DynamicResource Ui.Brush.Surface}"
|
||
Padding="8">
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="*" />
|
||
<RowDefinition Height="Auto" />
|
||
</Grid.RowDefinitions>
|
||
|
||
<Grid Grid.Row="0" Margin="0,0,0,12" VerticalAlignment="Center">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
<StackPanel Grid.Column="0"
|
||
Orientation="Horizontal"
|
||
VerticalAlignment="Center">
|
||
<Button MinWidth="120"
|
||
Margin="0,0,8,0"
|
||
Style="{StaticResource UiButtonSecondary}"
|
||
IsEnabled="{Binding CanEditQueue}"
|
||
behaviors:ContextMenuOpenOnButtonClickBehavior.IsEnabled="True"
|
||
ToolTipService.ShowDuration="60000"
|
||
ToolTip="Добавить файлы или каталог">
|
||
<Button.ContextMenu>
|
||
<ContextMenu>
|
||
<MenuItem Header="Файл" Command="{Binding AddFilesCommand}" />
|
||
<MenuItem Header="Каталог" Command="{Binding AddFolderCommand}" />
|
||
</ContextMenu>
|
||
</Button.ContextMenu>
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Text=""
|
||
FontFamily="Segoe MDL2 Assets"
|
||
FontSize="16"
|
||
Foreground="{DynamicResource Ui.Brush.Muted}"
|
||
VerticalAlignment="Center"
|
||
Margin="0,0,6,0" />
|
||
<TextBlock VerticalAlignment="Center" Text="Добавить" />
|
||
<TextBlock Style="{StaticResource UiSplitChevronMuted}" Text="" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button MinWidth="124"
|
||
Margin="0,0,8,0"
|
||
Style="{StaticResource UiButtonSecondary}"
|
||
IsEnabled="{Binding CanEditQueue}"
|
||
behaviors:ContextMenuOpenOnButtonClickBehavior.IsEnabled="True"
|
||
ToolTip="Сохранить или загрузить очередь">
|
||
<Button.ContextMenu>
|
||
<ContextMenu>
|
||
<MenuItem Header="Сохранить очередь" Command="{Binding SaveQueueCommand}" />
|
||
<MenuItem Header="Загрузить очередь" Command="{Binding LoadQueueCommand}" />
|
||
<Separator />
|
||
<MenuItem Header="Настроить дорожки"
|
||
Command="{Binding OpenBulkFileConversionSettingsCommand}" />
|
||
</ContextMenu>
|
||
</Button.ContextMenu>
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Text=""
|
||
FontFamily="Segoe MDL2 Assets"
|
||
FontSize="16"
|
||
Foreground="{DynamicResource Ui.Brush.Muted}"
|
||
VerticalAlignment="Center"
|
||
Margin="0,0,6,0" />
|
||
<TextBlock VerticalAlignment="Center" Text="Очередь" />
|
||
<TextBlock Style="{StaticResource UiSplitChevronMuted}" Text="" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button MinWidth="120"
|
||
Style="{StaticResource UiButtonGhost}"
|
||
IsEnabled="{Binding CanEditQueue}"
|
||
behaviors:ContextMenuOpenOnButtonClickBehavior.IsEnabled="True"
|
||
ToolTip="Очистить завершенные задачи или всю очередь">
|
||
<Button.ContextMenu>
|
||
<ContextMenu>
|
||
<MenuItem Header="Очистить завершенные" Command="{Binding ClearCompletedFromQueueCommand}" />
|
||
<MenuItem Header="Очистить все" Command="{Binding ClearQueueCommand}" />
|
||
</ContextMenu>
|
||
</Button.ContextMenu>
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}"
|
||
Margin="0,0,4,0"
|
||
Text="" />
|
||
<TextBlock VerticalAlignment="Center" Margin="0,0,2,0" Text="Очистить" />
|
||
<TextBlock Style="{StaticResource UiSplitChevronMuted}" Text="" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</Grid>
|
||
|
||
<Grid Grid.Row="1" MinHeight="0">
|
||
<DataGrid x:Name="QueueDataGrid"
|
||
VerticalAlignment="Stretch"
|
||
ItemsSource="{Binding QueueTasksView}"
|
||
IsReadOnly="False"
|
||
CanUserAddRows="False"
|
||
CanUserDeleteRows="False"
|
||
CanUserResizeColumns="True"
|
||
CanUserSortColumns="True"
|
||
AutoGenerateColumns="False"
|
||
ColumnHeaderStyle="{StaticResource QueueDataGridColumnHeader}"
|
||
CellStyle="{StaticResource QueueDataGridCell}"
|
||
GridLinesVisibility="Horizontal"
|
||
HeadersVisibility="Column"
|
||
RowHeaderWidth="0"
|
||
SelectionMode="Extended"
|
||
SelectionUnit="FullRow"
|
||
EnableRowVirtualization="True"
|
||
EnableColumnVirtualization="True"
|
||
VirtualizingPanel.IsVirtualizing="True"
|
||
VirtualizingPanel.VirtualizationMode="Recycling"
|
||
SelectedItem="{Binding SelectedQueueItem, Mode=TwoWay}"
|
||
FontSize="11"
|
||
RowHeight="46"
|
||
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||
ScrollViewer.HorizontalScrollBarVisibility="Auto"
|
||
behaviors:ConversionQueueDropTargetBehavior.IsDropTargetEnabled="True"
|
||
behaviors:DataGridRowDoubleClickCommandBehavior.Command="{Binding OpenFileConversionSettingsCommand}"
|
||
behaviors:DataGridAutoScrollSelectionBehavior.ScrollIntoViewItem="{Binding QueueItemToReveal}"
|
||
SelectionChanged="QueueDataGrid_SelectionChanged">
|
||
<DataGrid.InputBindings>
|
||
<KeyBinding Key="Delete"
|
||
Command="{Binding RemoveSelectedQueueItemsCommand}"
|
||
CommandParameter="{Binding ElementName=QueueDataGrid, Path=SelectedItems}" />
|
||
<KeyBinding Key="F2"
|
||
Command="{Binding OpenTrackSettingsCommand}"
|
||
CommandParameter="{Binding ElementName=QueueDataGrid, Path=SelectedItems}" />
|
||
</DataGrid.InputBindings>
|
||
<DataGrid.ContextMenu>
|
||
<ContextMenu Opened="QueueContextMenu_Opened"
|
||
DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
|
||
<MenuItem Header="Удалить из очереди"
|
||
Command="{Binding RemoveSelectedFromQueueCommand}"
|
||
CommandParameter="{Binding PlacementTarget.SelectedItems, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
|
||
<MenuItem Header="Настроить дорожки"
|
||
Command="{Binding OpenBulkFileConversionSettingsCommand}"
|
||
CommandParameter="{Binding PlacementTarget.SelectedItems, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
|
||
<Separator />
|
||
<MenuItem Header="Показать в папке"
|
||
Command="{Binding ShowInFolderCommand}"
|
||
CommandParameter="{Binding PlacementTarget.SelectedItems, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
|
||
<MenuItem Header="Воспроизвести"
|
||
Command="{Binding PlayFileCommand}"
|
||
CommandParameter="{Binding PlacementTarget.SelectedItems, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
|
||
<MenuItem Header="Копировать ошибку"
|
||
Visibility="{Binding CopyQueueItemErrorMenuVisible, Converter={StaticResource BoolToVis}}"
|
||
Command="{Binding CopyQueueItemErrorCommand}"
|
||
CommandParameter="{Binding PlacementTarget.SelectedItems, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
|
||
</ContextMenu>
|
||
</DataGrid.ContextMenu>
|
||
<DataGrid.Style>
|
||
<Style TargetType="DataGrid" BasedOn="{StaticResource UiDataGrid}">
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding IsQueueDropHighlight}" Value="True">
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.Accent}" />
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.QueueDropOverlay}" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</DataGrid.Style>
|
||
<DataGrid.RowStyle>
|
||
<Style TargetType="DataGridRow" BasedOn="{StaticResource UiDataGridRow}">
|
||
<Setter Property="Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding Status}" Value="{x:Static models:ConversionQueueStatus.Running}">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.QueueRunning}" />
|
||
<Setter Property="FontWeight" Value="SemiBold" />
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.QueueRunningBorder}" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding Status}" Value="{x:Static models:ConversionQueueStatus.Copying}">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.QueueCopying}" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding Status}" Value="{x:Static models:ConversionQueueStatus.Replacing}">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.QueueReplacing}" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding Status}" Value="{x:Static models:ConversionQueueStatus.Done}">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.QueueRowDone}" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding Status}" Value="{x:Static models:ConversionQueueStatus.Error}">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.QueueError}" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding Status}" Value="{x:Static models:ConversionQueueStatus.Cancelled}">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.QueueCancelled}" />
|
||
</DataTrigger>
|
||
<Trigger Property="IsSelected" Value="True">
|
||
<Setter Property="Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
||
<Setter Property="Opacity" Value="0.95" />
|
||
</Trigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</DataGrid.RowStyle>
|
||
<DataGrid.Columns>
|
||
<DataGridTemplateColumn IsReadOnly="True" MinWidth="45" Width="55" SortMemberPath="OrderNumber">
|
||
<DataGridTemplateColumn.Header>
|
||
<TextBlock Text="№" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" MaxWidth="40" />
|
||
</DataGridTemplateColumn.Header>
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate DataType="{x:Type models:ConversionQueueItem}">
|
||
<TextBlock Text="{Binding DisplayIndexText, Mode=OneWay}"
|
||
ToolTip="{Binding ManualEditToolTip, Mode=OneWay}"
|
||
HorizontalAlignment="Center"
|
||
Style="{StaticResource QueueTextBlockCellSingle}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTemplateColumn MinWidth="200" Width="1*" IsReadOnly="True" SortMemberPath="FullPath">
|
||
<DataGridTemplateColumn.Header>
|
||
<TextBlock Text="Файл" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
|
||
</DataGridTemplateColumn.Header>
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate DataType="{x:Type models:ConversionQueueItem}">
|
||
<Border Background="Transparent"
|
||
ClipToBounds="True"
|
||
MaxHeight="38"
|
||
ToolTip="{Binding FullPath, Mode=OneWay}"
|
||
VerticalAlignment="Center">
|
||
<StackPanel Orientation="Vertical"
|
||
VerticalAlignment="Center">
|
||
<TextBlock Text="{Binding FileName, Mode=OneWay}"
|
||
FontWeight="SemiBold"
|
||
TextTrimming="CharacterEllipsis"
|
||
Style="{StaticResource QueueTextBlockCellSingle}" />
|
||
<TextBlock Text="{Binding DirectoryPath, Mode=OneWay}"
|
||
FontSize="10"
|
||
Foreground="{DynamicResource Ui.Brush.Muted}"
|
||
TextTrimming="CharacterEllipsis"
|
||
Style="{StaticResource QueueTextBlockCellSingle}" />
|
||
</StackPanel>
|
||
</Border>
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTextColumn IsReadOnly="True" MinWidth="70" Width="70" SortMemberPath="FileSizeMb" Binding="{Binding FileSizeMb, Mode=OneWay}">
|
||
<DataGridTextColumn.Header>
|
||
<TextBlock Text="Размер, МБ" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" MaxWidth="66" />
|
||
</DataGridTextColumn.Header>
|
||
<DataGridTextColumn.ElementStyle>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource QueueTextBlockCellSingle}">
|
||
<Setter Property="TextAlignment" Value="Right" />
|
||
</Style>
|
||
</DataGridTextColumn.ElementStyle>
|
||
</DataGridTextColumn>
|
||
<DataGridTextColumn IsReadOnly="True" Width="220" Binding="{Binding TrackSummaryDisplay, Mode=OneWay}">
|
||
<DataGridTextColumn.Header>
|
||
<TextBlock Text="Дорожки" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" MaxWidth="120" />
|
||
</DataGridTextColumn.Header>
|
||
<DataGridTextColumn.ElementStyle>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource QueueTextBlockCellSingle}">
|
||
<Setter Property="TextAlignment" Value="Center" />
|
||
<Setter Property="TextTrimming" Value="None" />
|
||
</Style>
|
||
</DataGridTextColumn.ElementStyle>
|
||
</DataGridTextColumn>
|
||
<DataGridTextColumn IsReadOnly="True" MinWidth="80" Width="80" SortMemberPath="StatusSortOrder" Binding="{Binding Status, Mode=OneWay}">
|
||
<DataGridTextColumn.Header>
|
||
<TextBlock Text="Статус" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" MaxWidth="76" />
|
||
</DataGridTextColumn.Header>
|
||
<DataGridTextColumn.ElementStyle>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource QueueTextBlockCellSingle}" />
|
||
</DataGridTextColumn.ElementStyle>
|
||
</DataGridTextColumn>
|
||
<DataGridTextColumn IsReadOnly="True" MinWidth="70" Width="70" SortMemberPath="DisplayProgressPercent" Binding="{Binding DisplayProgressPercent, Mode=OneWay, StringFormat={}{0}}">
|
||
<DataGridTextColumn.Header>
|
||
<TextBlock Text="%" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" MaxWidth="20" />
|
||
</DataGridTextColumn.Header>
|
||
<DataGridTextColumn.ElementStyle>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource QueueTextBlockCellSingle}">
|
||
<Setter Property="TextAlignment" Value="Right" />
|
||
</Style>
|
||
</DataGridTextColumn.ElementStyle>
|
||
</DataGridTextColumn>
|
||
<DataGridTemplateColumn MinWidth="100" Width="100" IsReadOnly="False" SortMemberPath="Profile">
|
||
<DataGridTemplateColumn.Header>
|
||
<TextBlock Text="Профиль" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" MaxWidth="86" />
|
||
</DataGridTemplateColumn.Header>
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate DataType="{x:Type models:ConversionQueueItem}">
|
||
<ComboBox
|
||
VerticalContentAlignment="Center"
|
||
Style="{StaticResource UiCombo}"
|
||
IsEnabled="{Binding DataContext.CanEditQueue, RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||
DisplayMemberPath="Profile"
|
||
SelectedValuePath="Profile"
|
||
ItemsSource="{Binding DataContext.ConversionProfiles, RelativeSource={RelativeSource AncestorType=Window}}"
|
||
SelectedValue="{Binding Profile, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
</DataGridTemplateColumn>
|
||
<DataGridTextColumn IsReadOnly="True" MinWidth="120" Width="2*" SortMemberPath="PlanSummary" Binding="{Binding PlanSummary, Mode=OneWay}">
|
||
<DataGridTextColumn.Header>
|
||
<TextBlock Text="План обработки" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
|
||
</DataGridTextColumn.Header>
|
||
<DataGridTextColumn.ElementStyle>
|
||
<Style TargetType="TextBlock" BasedOn="{StaticResource QueueTextBlockTwoLine}">
|
||
<Setter Property="Foreground" Value="{DynamicResource Ui.Brush.Text}" />
|
||
<Setter Property="FontWeight" Value="Normal" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding IsSkipPlan}" Value="False">
|
||
<Setter Property="Foreground" Value="{DynamicResource Ui.Brush.PlanNonSkipText}" />
|
||
<Setter Property="FontWeight" Value="SemiBold" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</DataGridTextColumn.ElementStyle>
|
||
</DataGridTextColumn>
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
|
||
<Border HorizontalAlignment="Right"
|
||
VerticalAlignment="Bottom"
|
||
Margin="0,0,0,0"
|
||
Padding="10,8"
|
||
Background="{DynamicResource Ui.Brush.Surface}"
|
||
BorderBrush="{DynamicResource Ui.Brush.BorderSubtle}"
|
||
BorderThickness="1"
|
||
MinWidth="220"
|
||
Visibility="{Binding AnalysisProgress.PanelVisibility}"
|
||
IsHitTestVisible="True">
|
||
<StackPanel>
|
||
<TextBlock Text="{Binding AnalysisProgress.StatusLine, Mode=OneWay}"
|
||
TextWrapping="Wrap"
|
||
Margin="0,0,0,6"
|
||
FontSize="11" />
|
||
<Button Margin="0,8,0,0"
|
||
HorizontalAlignment="Left"
|
||
Style="{StaticResource UiButtonSecondary}"
|
||
Command="{Binding AnalysisProgress.CancelCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock VerticalAlignment="Center" Text="Отмена" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</Border>
|
||
|
||
<Border HorizontalAlignment="Stretch"
|
||
VerticalAlignment="Top"
|
||
Margin="8,8,8,0"
|
||
MaxHeight="96"
|
||
Panel.ZIndex="2"
|
||
Background="Transparent"
|
||
Cursor="Hand"
|
||
Visibility="{Binding IsToastVisible, Converter={StaticResource BoolToVis}}">
|
||
<Border.InputBindings>
|
||
<MouseBinding MouseAction="LeftClick" Command="{Binding CloseToastCommand}" />
|
||
</Border.InputBindings>
|
||
<Border HorizontalAlignment="Right"
|
||
MaxWidth="520"
|
||
CornerRadius="6"
|
||
Padding="12,10"
|
||
BorderThickness="2">
|
||
<Border.Style>
|
||
<Style TargetType="Border">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.Track.DefaultBg}" />
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.Toast.SuccessBorder}" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding ToastKind}" Value="{x:Static vm:ToastKind.Warning}">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.Toast.WarningBg}" />
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.Toast.WarningBorder}" />
|
||
</DataTrigger>
|
||
<DataTrigger Binding="{Binding ToastKind}" Value="{x:Static vm:ToastKind.Error}">
|
||
<Setter Property="Background" Value="{DynamicResource Ui.Brush.Toast.ErrorBg}" />
|
||
<Setter Property="BorderBrush" Value="{DynamicResource Ui.Brush.Toast.ErrorBorder}" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</Border.Style>
|
||
<TextBlock Text="{Binding ToastMessage}"
|
||
TextWrapping="Wrap"
|
||
Foreground="{DynamicResource Ui.Brush.Text}"
|
||
FontWeight="SemiBold" />
|
||
</Border>
|
||
</Border>
|
||
</Grid>
|
||
|
||
<Grid Grid.Row="2" Margin="0,12,0,0" VerticalAlignment="Center">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" MinWidth="0" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<StackPanel Grid.Column="0"
|
||
Margin="0,0,12,0"
|
||
Orientation="Vertical"
|
||
HorizontalAlignment="Left"
|
||
VerticalAlignment="Center">
|
||
<Border Padding="10,8"
|
||
BorderBrush="{DynamicResource Ui.Brush.BorderSubtle}"
|
||
BorderThickness="1"
|
||
Background="{DynamicResource Ui.Brush.Surface}"
|
||
HorizontalAlignment="Left"
|
||
VerticalAlignment="Center"
|
||
Visibility="{Binding HasQueueTasks, Converter={StaticResource BoolToVis}}">
|
||
<StackPanel Orientation="Horizontal"
|
||
VerticalAlignment="Center">
|
||
<TextBlock VerticalAlignment="Center"
|
||
Foreground="{DynamicResource Ui.Brush.Caption}"
|
||
Text="Всего: " />
|
||
<TextBlock VerticalAlignment="Center"
|
||
FontWeight="SemiBold"
|
||
Foreground="{DynamicResource Ui.Brush.Text}"
|
||
Text="{Binding OverallQueueTotal, Mode=OneWay}" />
|
||
<TextBlock Margin="10,0"
|
||
VerticalAlignment="Center"
|
||
Foreground="{DynamicResource Ui.Brush.Caption}"
|
||
Text="|" />
|
||
<TextBlock VerticalAlignment="Center"
|
||
Foreground="{DynamicResource Ui.Brush.Caption}"
|
||
Text="Готово: " />
|
||
<TextBlock VerticalAlignment="Center"
|
||
FontWeight="SemiBold"
|
||
Foreground="{DynamicResource Ui.Brush.Success}"
|
||
Text="{Binding OverallQueueDoneCount, Mode=OneWay}" />
|
||
<TextBlock Margin="10,0"
|
||
VerticalAlignment="Center"
|
||
Foreground="{DynamicResource Ui.Brush.Caption}"
|
||
Text="|" />
|
||
<TextBlock VerticalAlignment="Center"
|
||
Foreground="{DynamicResource Ui.Brush.Caption}"
|
||
Text="Ошибки: " />
|
||
<TextBlock VerticalAlignment="Center"
|
||
FontWeight="SemiBold"
|
||
Foreground="{DynamicResource Ui.Brush.ErrorText}"
|
||
Text="{Binding OverallQueueErrorCount, Mode=OneWay}" />
|
||
</StackPanel>
|
||
</Border>
|
||
<StackPanel Orientation="Horizontal"
|
||
HorizontalAlignment="Left"
|
||
VerticalAlignment="Center"
|
||
Margin="0,8,0,0">
|
||
<CheckBox Margin="0"
|
||
Height="24"
|
||
VerticalAlignment="Center"
|
||
VerticalContentAlignment="Center"
|
||
IsEnabled="{Binding CanEditQueue}"
|
||
IsChecked="{Binding CopyPreviousTrackSettings, Mode=TwoWay}">
|
||
<CheckBox.Content>
|
||
<TextBlock Text="Копировать настройки"
|
||
FontSize="12"
|
||
LineHeight="16"
|
||
LineStackingStrategy="BlockLineHeight" />
|
||
</CheckBox.Content>
|
||
<CheckBox.ToolTip>
|
||
<ToolTip MaxWidth="360">
|
||
<TextBlock TextWrapping="Wrap"
|
||
Text="Автоматически применять настройки дорожек из предыдущего файла, если структура дорожек совпадает." />
|
||
</ToolTip>
|
||
</CheckBox.ToolTip>
|
||
</CheckBox>
|
||
</StackPanel>
|
||
</StackPanel>
|
||
<StackPanel Grid.Column="1"
|
||
Orientation="Horizontal"
|
||
HorizontalAlignment="Right"
|
||
VerticalAlignment="Center">
|
||
<Button MinWidth="108"
|
||
Margin="0,0,8,0"
|
||
Style="{StaticResource UiButtonPrimary}"
|
||
Command="{Binding StartProcessingCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphOnPrimary}" Text="" />
|
||
<TextBlock VerticalAlignment="Center" Text="Старт" />
|
||
</StackPanel>
|
||
</Button>
|
||
<Button MinWidth="108"
|
||
Style="{StaticResource UiButtonSecondary}"
|
||
Command="{Binding StopProcessingCommand}">
|
||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||
<TextBlock Style="{StaticResource UiMdlGlyphButton}" Text="" />
|
||
<TextBlock VerticalAlignment="Center" Text="Стоп" />
|
||
</StackPanel>
|
||
</Button>
|
||
</StackPanel>
|
||
</Grid>
|
||
</Grid>
|
||
</Border>
|
||
</UserControl>
|