diff options
author | Scott <[email protected]> | 2015-10-24 20:54:18 +0100 |
---|---|---|
committer | Scott <[email protected]> | 2015-10-24 20:54:18 +0100 |
commit | 0c541998fd82d300293ce9b7ab508d2f25627543 (patch) | |
tree | a108e0a1f4ab0190c119b03e5974081772cf8f81 /win/CS/HandBrakeWPF/Views/Queue | |
parent | f08c123b7723df0a84b5b72cbb485c052cb7747a (diff) |
Improve the In-line queue display.
Diffstat (limited to 'win/CS/HandBrakeWPF/Views/Queue')
-rw-r--r-- | win/CS/HandBrakeWPF/Views/Queue/Embedded.xaml | 280 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Views/Queue/Embedded.xaml.cs | 27 |
2 files changed, 307 insertions, 0 deletions
diff --git a/win/CS/HandBrakeWPF/Views/Queue/Embedded.xaml b/win/CS/HandBrakeWPF/Views/Queue/Embedded.xaml new file mode 100644 index 000000000..61565b74d --- /dev/null +++ b/win/CS/HandBrakeWPF/Views/Queue/Embedded.xaml @@ -0,0 +1,280 @@ +<UserControl x:Class="HandBrakeWPF.Views.Queue.Embedded" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:cal="http://www.caliburnproject.org" + xmlns:Converters="clr-namespace:HandBrakeWPF.Converters" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:dd="clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop" + xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:Audio="clr-namespace:HandBrakeWPF.Converters.Audio" + xmlns:Subtitles="clr-namespace:HandBrakeWPF.Converters.Subtitles" + xmlns:video="clr-namespace:HandBrakeWPF.Converters.Video" + xmlns:commands="clr-namespace:HandBrakeWPF.Commands" + xmlns:helpers="clr-namespace:HandBrakeWPF.Helpers" + xmlns:Properties="clr-namespace:HandBrakeWPF.Properties" + + MinWidth="350" + MinHeight="250" + TextOptions.TextFormattingMode="Display" + mc:Ignorable="d"> + + <UserControl.Resources> + <Converters:BooleanToVisibilityConverter x:Key="boolToVisConverter" /> + <Converters:FullPathToFileNameConverter x:Key="filePathToFilenameConverter" /> + <Converters:EnumComboConverter x:Key="enumComboConverter" /> + <Converters:QueueStatusToVisibilityConverter x:Key="queueStatusVisConverter" /> + <Audio:AudioQueueDisplayConverter x:Key="audioTrackDisplayConverter" /> + <Subtitles:SubtitlesQueueDisplayConverter x:Key="subtitleTrackDisplayConverter" /> + <video:EncoderOptionsTooltipConverter x:Key="encoderOptionsTooltipConverter" /> + <video:VideoOptionsTooltipConverter x:Key="videoOptionsTooltipConverter" /> + + <Style x:Key="LongToolTipHolder" TargetType="FrameworkElement"> + <Setter Property="ToolTipService.ShowDuration" Value="10000" /> + </Style> + + </UserControl.Resources> + + <Grid> + + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="*" /> + </Grid.RowDefinitions> + + <ListBox Grid.Row="2" + Margin="10,5,0,1" + dd:DragDrop.DropHandler="{Binding}" + dd:DragDrop.IsDragSource="True" + dd:DragDrop.IsDropTarget="True" + ItemsSource="{Binding QueueTasks, Mode=OneWay}" + helpers:ListBoxHelper.SelectedItems="{Binding SelectedItems}" + SelectionMode="Extended"> + + <i:Interaction.Triggers> + <commands:InputBindingTrigger> + <commands:InputBindingTrigger.InputBinding> + <KeyBinding Key="Delete"/> + </commands:InputBindingTrigger.InputBinding> + <cal:ActionMessage MethodName="RemoveSelectedJobs" /> + </commands:InputBindingTrigger> + </i:Interaction.Triggers> + + <ListBox.ContextMenu> + <ContextMenu> + <MenuItem cal:Message.Attach="[Event Click] = [Action ClearCompleted]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearCompleted}" /> + <MenuItem cal:Message.Attach="[Event Click] = [Action Clear]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearAll}" /> + <MenuItem cal:Message.Attach="[Event Click] = [Action RemoveSelectedJobs]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearSelected}" /> + <Separator /> + <MenuItem cal:Message.Attach="[Event Click] = [Action Import]" Header="{x:Static Properties:ResourcesUI.QueueView_Import}" /> + <MenuItem cal:Message.Attach="[Event Click] = [Action Export]" Header="{x:Static Properties:ResourcesUI.QueueView_Export}" /> + </ContextMenu> + </ListBox.ContextMenu> + + <ListBox.ItemContainerStyle> + <Style TargetType="{x:Type ListBoxItem}"> + <Setter Property="HorizontalContentAlignment" Value="Stretch" /> + <Setter Property="Margin" Value="0,0,0,1" /> + <Setter Property="ToolTip"> + <Setter.Value> + <Grid MaxWidth="650" Margin="0,5,0,5" Style="{StaticResource LongToolTipHolder}"> + <Grid.Resources> + <Style TargetType="TextBlock"> + <Setter Property="Margin" Value="0,5,0,5" /> + </Style> + </Grid.Resources> + + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + <RowDefinition Height="Auto" /> + </Grid.RowDefinitions> + + <Grid.ColumnDefinitions> + <ColumnDefinition Width="95" /> + <ColumnDefinition Width="*" /> + </Grid.ColumnDefinitions> + + <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Source}" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" /> + <TextBlock Text="{Binding Task.Source}" TextWrapping="Wrap" Grid.Row="0" Grid.Column="1" /> + + <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Destination}" VerticalAlignment="Top" Grid.Row="1" Grid.Column="0" /> + <TextBlock Text="{Binding Task.Destination}" TextWrapping="Wrap" Grid.Row="1" Grid.Column="1" /> + + <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_PictureSettings}" VerticalAlignment="Top" Grid.Row="2" Grid.Column="0" /> + <TextBlock Text="{Binding Task.PictureSettingsDesc}" TextWrapping="Wrap" Grid.Row="2" Grid.Column="1" /> + + <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Video}" Grid.Row="3" Grid.Column="0" /> + <TextBlock Text="{Binding Task, Converter={StaticResource videoOptionsTooltipConverter}}" Grid.Row="3" Grid.Column="1" TextWrapping="Wrap" /> + + <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Audio}" Grid.Row="4" Grid.Column="0"/> + <TextBlock Text="{Binding Task.AudioTracks, Converter={StaticResource audioTrackDisplayConverter}}" + Grid.Row="4" Grid.Column="1"/> + + <TextBlock FontWeight="Bold" VerticalAlignment="Top" Text="{x:Static Properties:ResourcesUI.QueueView_Subtitles}" Grid.Row="5" Grid.Column="0" /> + <TextBlock Text="{Binding Task.SubtitleTracks, Converter={StaticResource subtitleTrackDisplayConverter}}" + Grid.Row="5" Grid.Column="1" /> + + <TextBlock FontWeight="Bold" VerticalAlignment="Top" Grid.Row="6" Grid.Column="0" Text="{x:Static Properties:ResourcesUI.QueueView_Advanced}" /> + <TextBlock Text="{Binding Task, Converter={StaticResource encoderOptionsTooltipConverter}}" Grid.Row="6" Grid.Column="1" TextWrapping="Wrap" /> + </Grid> + + </Setter.Value> + </Setter> + + </Style> + </ListBox.ItemContainerStyle> + + <ListBox.ItemTemplate> + <DataTemplate x:Name="QueueItemTemplate"> + + <Grid HorizontalAlignment="Stretch"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto" /> + <ColumnDefinition Width="*" /> + <ColumnDefinition Width="Auto" /> + </Grid.ColumnDefinitions> + + <!-- Marker --> + <Image Grid.Column="0" + Width="16" + Height="16" + Margin="10,0,10,0"> + <Image.Style> + <Style TargetType="{x:Type Image}"> + <Style.Triggers> + <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Waiting"> + <Setter Property="Source" Value="..\Images\Movies.png" /> + </DataTrigger> + <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="In Progress"> + <Setter Property="Source" Value="..\Images\Working0.png" /> + </DataTrigger> + <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Completed"> + <Setter Property="Source" Value="..\Images\Complete.png" /> + </DataTrigger> + <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Error"> + <Setter Property="Source" Value="..\Images\WarningSmall.png" /> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> + + <!-- Settings --> + <StackPanel Grid.Column="1" + Margin="0,5,0,5" + HorizontalAlignment="Stretch"> + <StackPanel Orientation="Horizontal"> + <TextBlock FontWeight="Bold" Text="Title: " /> + <TextBlock Text="{Binding Task.Title}" /> + + <TextBlock Margin="10,0,0,0" + FontWeight="Bold" + Text="{Binding Task.PointToPointMode}" /> + <TextBlock Text=": " /> + <TextBlock Text="{Binding Task.StartPoint}" /> + <TextBlock Margin="5,0,5,0" Text="to" /> + <TextBlock Text="{Binding Task.EndPoint}" /> + </StackPanel> + + <!-- TODO Support Drive Label Name --> + <StackPanel Orientation="Horizontal"> + <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Source}" /> + <TextBlock Text="{Binding Task.Source, Converter={StaticResource filePathToFilenameConverter}}" /> + </StackPanel> + + <StackPanel Orientation="Horizontal"> + <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Destination}" /> + <TextBlock Text="{Binding Task.Destination, Converter={StaticResource filePathToFilenameConverter}}" /> + </StackPanel> + </StackPanel> + + <!-- Delete --> + <Grid Grid.Column="2" + Margin="10,0,10,0" + VerticalAlignment="Center"> + + <Grid.RowDefinitions> + <RowDefinition Height="Auto" /> + </Grid.RowDefinitions> + + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto" /> + <ColumnDefinition Width="Auto" /> + <ColumnDefinition Width="Auto" /> + </Grid.ColumnDefinitions> + + <Button Visibility="{Binding Status, Converter={StaticResource queueStatusVisConverter}}" + Grid.Row="0" Grid.Column="0" Margin="0,5,0,0"> + <Button.Template> + <ControlTemplate> + <Image Width="20" + Height="20" VerticalAlignment="Center" + Source="../Images/Refresh.ico" + ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_ResetJobStatus}"> + </Image> + </ControlTemplate> + </Button.Template> + <i:Interaction.Triggers> + <i:EventTrigger EventName="Click"> + <cal:ActionMessage MethodName="RetryJob"> + <cal:Parameter Value="{Binding}" /> + </cal:ActionMessage> + </i:EventTrigger> + </i:Interaction.Triggers> + </Button> + + <Button Grid.Row="0" Grid.Column="1" Margin="10,5,0,0"> + <Button.Template> + <ControlTemplate> + <Image Width="20" + Height="20" VerticalAlignment="Center" + Source="../Images/Options24.png" + ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_SendJobBack}"> + </Image> + </ControlTemplate> + </Button.Template> + <i:Interaction.Triggers> + <i:EventTrigger EventName="Click"> + <cal:ActionMessage MethodName="EditJob"> + <cal:Parameter Value="{Binding}" /> + </cal:ActionMessage> + </i:EventTrigger> + </i:Interaction.Triggers> + </Button> + + <Button Grid.Row="0" Grid.Column="2" Margin="10,5,0,0"> + <Button.Template> + <ControlTemplate> + <Image Width="20" + Height="20" VerticalAlignment="Center" + Source="../Images/delete.png" + ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_DeleteJob}"> + </Image> + </ControlTemplate> + </Button.Template> + <i:Interaction.Triggers> + <i:EventTrigger EventName="Click"> + <cal:ActionMessage MethodName="RemoveJob"> + <cal:Parameter Value="{Binding}" /> + </cal:ActionMessage> + </i:EventTrigger> + </i:Interaction.Triggers> + </Button> + + + </Grid> + + </Grid> + </DataTemplate> + </ListBox.ItemTemplate> + </ListBox> + + + </Grid> +</UserControl> diff --git a/win/CS/HandBrakeWPF/Views/Queue/Embedded.xaml.cs b/win/CS/HandBrakeWPF/Views/Queue/Embedded.xaml.cs new file mode 100644 index 000000000..74109f775 --- /dev/null +++ b/win/CS/HandBrakeWPF/Views/Queue/Embedded.xaml.cs @@ -0,0 +1,27 @@ +// -------------------------------------------------------------------------------------------------------------------- +// <copyright file="Embedded.xaml.cs" company="HandBrake Project (http://handbrake.fr)"> +// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. +// </copyright> +// <summary> +// Interaction logic for Embedded.xaml +// </summary> +// -------------------------------------------------------------------------------------------------------------------- + +namespace HandBrakeWPF.Views.Queue +{ + using System.Windows.Controls; + + /// <summary> + /// Interaction logic for VideoView + /// </summary> + public partial class Embedded : UserControl + { + /// <summary> + /// Initializes a new instance of the <see cref="Embedded"/> class. + /// </summary> + public Embedded() + { + this.InitializeComponent(); + } + } +} |