<Compile Include="Views\MiniView.xaml.cs">\r
<DependentUpon>MiniView.xaml</DependentUpon>\r
</Compile>\r
+ <Compile Include="Views\Queue\QueueTwoContent.xaml.cs">\r
+ <DependentUpon>QueueTwoContent.xaml</DependentUpon>\r
+ </Compile>\r
+ <Compile Include="Views\Queue\QueueTwoView.xaml.cs">\r
+ <DependentUpon>QueueTwoView.xaml</DependentUpon>\r
+ </Compile>\r
<Compile Include="Views\Queue\Embedded.xaml.cs">\r
<DependentUpon>Embedded.xaml</DependentUpon>\r
</Compile>\r
<Generator>MSBuild:Compile</Generator>\r
<SubType>Designer</SubType>\r
</Page>\r
+ <Page Include="Views\Queue\QueueTwoContent.xaml">\r
+ <SubType>Designer</SubType>\r
+ <Generator>MSBuild:Compile</Generator>\r
+ </Page>\r
+ <Page Include="Views\Queue\QueueTwoView.xaml">\r
+ <Generator>MSBuild:Compile</Generator>\r
+ <SubType>Designer</SubType>\r
+ </Page>\r
<Page Include="Views\Queue\Embedded.xaml">\r
<Generator>MSBuild:Compile</Generator>\r
<SubType>Designer</SubType>\r
}\r
}\r
\r
+ /// <summary>\r
+ /// Looks up a localized string similar to Show the new experimental queue design..\r
+ /// </summary>\r
+ public static string Options_ShowExperimentalQueueDesign {\r
+ get {\r
+ return ResourceManager.GetString("Options_ShowExperimentalQueueDesign", resourceCulture);\r
+ }\r
+ }\r
+ \r
/// <summary>\r
/// Looks up a localized string similar to Show Queue in line with the main UI..\r
/// </summary>\r
<data name="SourceSelection_QueueArchiveRecoveryDesc" xml:space="preserve">\r
<value>A previous queue archive is available. </value>\r
</data>\r
+ <data name="Options_ShowExperimentalQueueDesign" xml:space="preserve">\r
+ <value>Show the new experimental queue design.</value>\r
+ </data>\r
</root>
\ No newline at end of file
{\r
this.status = value;\r
this.NotifyOfPropertyChange(() => this.Status);\r
+ this.NotifyOfPropertyChange(() => this.ShowEncodeProgress);\r
}\r
}\r
\r
}\r
}\r
\r
+ public bool ShowEncodeProgress => this.Status == QueueItemStatus.InProgress && SystemInfo.IsWindows10();\r
+\r
#endregion\r
\r
protected bool Equals(QueueTask other)\r
public const string EnableQuickSyncEncoding = "EnableQuickSyncEncoding";\r
public const string EnableVceEncoder = "EnableVceEncoder";\r
public const string EnableNvencEncoder = "EnableNvencEncoder";\r
+ public const string ShowExperimentalQueue = "ShowExperimentalQueue";\r
\r
#endregion\r
+\r
}\r
}
\ No newline at end of file
return gpuInfo;
}
}
+
+ public static bool IsWindows10()
+ {
+ var reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
+
+ string productName = (string)reg.GetValue("ProductName");
+
+ return productName.StartsWith("Windows 10");
+ }
}
}
/// </summary>\r
public interface IQueueViewModel\r
{\r
+ /// <summary>\r
+ /// Temporary variable to toggle the new style experimental queue.\r
+ /// </summary>\r
+ bool IsNewQueueVisible { set; }\r
+\r
+ bool IsInline { set; }\r
+\r
/// <summary>\r
/// The when done action after a queue completes.\r
/// </summary>\r
public void OpenQueueWindow()\r
{\r
bool showQueueInline = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.ShowQueueInline);\r
+ bool showNewQueue = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.ShowExperimentalQueue); ;\r
+\r
+ this.QueueViewModel.IsNewQueueVisible = showNewQueue;\r
+ this.QueueViewModel.IsInline = showQueueInline;\r
\r
if (showQueueInline)\r
{\r
private bool showAdvancedTab;\r
private bool removePunctuation;\r
private bool resetWhenDoneAction;\r
-\r
private bool enableQuickSyncDecoding;\r
private bool showQueueInline;\r
private bool pauseOnLowDiskspace;\r
private bool useQsvDecodeForNonQsvEnc;\r
private bool showStatusInTitleBar;\r
private bool showPreviewOnSummaryTab;\r
-\r
private string whenDoneAudioFile;\r
private bool playSoundWhenDone;\r
private bool playSoundWhenQueueDone;\r
-\r
private bool enableQuickSyncEncoding;\r
-\r
- private bool enableVceEncoder;\r
-\r
+ private bool enableVceEncoder; \r
private bool enableNvencEncoder;\r
+ private bool showExperimentalQueue;\r
\r
#endregion\r
\r
}\r
}\r
\r
+ public bool ShowExperimentalQueue\r
+ {\r
+ get => this.showExperimentalQueue;\r
+ set\r
+ {\r
+ if (value == this.showExperimentalQueue) return;\r
+ this.showExperimentalQueue = value;\r
+ this.NotifyOfPropertyChange(() => this.ShowExperimentalQueue);\r
+ }\r
+ }\r
+\r
/// <summary>\r
/// Gets or sets a value indicating whether to show encode status in the tile bar.\r
/// </summary>\r
this.WhenDoneAudioFileFullPath = this.userSettingService.GetUserSetting<string>(UserSettingConstants.WhenDoneAudioFile);\r
this.PlaySoundWhenDone = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.PlaySoundWhenDone);\r
this.PlaySoundWhenQueueDone = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.PlaySoundWhenQueueDone);\r
-\r
+ this.ShowExperimentalQueue = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.ShowExperimentalQueue);\r
+ \r
// #############################\r
// Output Settings\r
// #############################\r
this.userSettingService.SetUserSetting(UserSettingConstants.SendFile, this.SendFileAfterEncode);\r
this.userSettingService.SetUserSetting(UserSettingConstants.SendFileToArgs, this.Arguments);\r
this.userSettingService.SetUserSetting(UserSettingConstants.ResetWhenDoneAction, this.ResetWhenDoneAction);\r
- this.userSettingService.SetUserSetting(UserSettingConstants.ShowQueueInline, this.ShowQueueInline);\r
this.userSettingService.SetUserSetting(UserSettingConstants.ShowStatusInTitleBar, this.ShowStatusInTitleBar);\r
this.userSettingService.SetUserSetting(UserSettingConstants.ShowPreviewOnSummaryTab, this.ShowPreviewOnSummaryTab);\r
this.userSettingService.SetUserSetting(UserSettingConstants.PlaySoundWhenDone, this.PlaySoundWhenDone);\r
this.userSettingService.SetUserSetting(UserSettingConstants.PlaySoundWhenQueueDone, this.PlaySoundWhenQueueDone);\r
this.userSettingService.SetUserSetting(UserSettingConstants.WhenDoneAudioFile, this.WhenDoneAudioFileFullPath);\r
\r
+ /* Experiments */\r
+ this.userSettingService.SetUserSetting(UserSettingConstants.ShowQueueInline, this.ShowQueueInline);\r
+ this.userSettingService.SetUserSetting(UserSettingConstants.ShowExperimentalQueue, this.ShowExperimentalQueue);\r
+\r
+\r
/* Output Files */\r
this.userSettingService.SetUserSetting(UserSettingConstants.AutoNaming, this.AutomaticallyNameFiles);\r
this.userSettingService.SetUserSetting(UserSettingConstants.AutoNameFormat, this.AutonameFormat);\r
private string jobsPending;\r
private string whenDoneAction;\r
private QueueTask selectedTask;\r
-\r
private bool isQueueRunning;\r
+ private double progressValue;\r
+ private bool intermediateProgress;\r
+ private bool showEncodeProgress;\r
\r
#endregion\r
\r
this.selectedTask = value;\r
this.NotifyOfPropertyChange(() => this.SelectedTask);\r
this.HandleLogData();\r
+\r
+ this.NotifyOfPropertyChange(() => this.CanRetryJob);\r
+ this.NotifyOfPropertyChange(() => this.CanEditJob);\r
+ this.NotifyOfPropertyChange(() => this.CanRemoveJob);\r
}\r
}\r
\r
\r
public string ActivityLog { get; private set; }\r
\r
+ public bool CanRetryJob => this.SelectedTask != null && this.SelectedTask.Status != QueueItemStatus.Waiting;\r
+\r
+ public bool CanEditJob => this.SelectedTask != null;\r
+\r
+ public bool CanRemoveJob => this.SelectedTask != null;\r
+\r
+ public double ProgressValue\r
+ {\r
+ get => this.progressValue;\r
+ set\r
+ {\r
+ if (value == this.progressValue) return;\r
+ this.progressValue = value;\r
+ this.NotifyOfPropertyChange(() => this.ProgressValue);\r
+ }\r
+ }\r
+\r
+ public bool IntermediateProgress\r
+ {\r
+ get => this.intermediateProgress;\r
+ set\r
+ {\r
+ if (value == this.intermediateProgress) return;\r
+ this.intermediateProgress = value;\r
+ this.NotifyOfPropertyChange(() => this.IntermediateProgress);\r
+ }\r
+ }\r
+\r
+ public bool ShowEncodeProgress\r
+ {\r
+ get => this.showEncodeProgress;\r
+ set\r
+ {\r
+ if (value == this.showEncodeProgress) return;\r
+ this.showEncodeProgress = value;\r
+ this.NotifyOfPropertyChange(() => this.ShowEncodeProgress);\r
+ }\r
+ }\r
+\r
+ public bool IsNewQueueVisible { get; set; }\r
+\r
+ public bool IsInline { get; set; }\r
+\r
#endregion\r
\r
#region Public Methods\r
task.Status = QueueItemStatus.Waiting;\r
this.queueProcessor.BackupQueue(null);\r
this.JobsPending = string.Format(Resources.QueueViewModel_JobsPending, this.queueProcessor.Count);\r
+ this.NotifyOfPropertyChange(() => this.CanRetryJob);\r
}\r
\r
/// <summary>\r
Execute.OnUIThread(() =>\r
{\r
string jobsPending = string.Format(Resources.Main_JobsPending_addon, this.queueProcessor.Count);\r
+ this.IntermediateProgress = false; \r
+\r
if (e.IsSubtitleScan)\r
{\r
this.JobStatus = string.Format(Resources.MainViewModel_EncodeStatusChanged_SubScan_StatusLabel,\r
e.EstimatedTimeLeft,\r
e.ElapsedTime,\r
jobsPending);\r
+\r
+ this.ProgressValue = e.PercentComplete;\r
}\r
else if (e.IsMuxing)\r
{\r
this.JobStatus = ResourcesUI.MainView_Muxing;\r
+ this.IntermediateProgress = true;\r
}\r
else if (e.IsSearching)\r
{\r
this.JobStatus = string.Format(ResourcesUI.MainView_ProgressStatusWithTask, ResourcesUI.MainView_Searching, e.PercentComplete, e.EstimatedTimeLeft, jobsPending);\r
+ this.ProgressValue = e.PercentComplete;\r
}\r
else\r
{\r
e.EstimatedTimeLeft,\r
e.ElapsedTime,\r
jobsPending);\r
+ this.ProgressValue = e.PercentComplete;\r
}\r
});\r
}\r
this.JobStatus = Resources.QueueViewModel_QueueNotRunning;\r
this.IsQueueRunning = false;\r
}\r
+\r
+ this.NotifyOfPropertyChange(() => this.CanRetryJob);\r
+ this.NotifyOfPropertyChange(() => this.CanEditJob);\r
+ this.NotifyOfPropertyChange(() => this.CanRemoveJob);\r
}\r
\r
/// <summary>\r
</StackPanel>\r
\r
<!-- Queue in-line display if enabled -->\r
- <Grid Grid.Row="4" Grid.Column="0" Margin="10,0,10,10" Visibility="{Binding IsQueueShowingInLine, Converter={StaticResource boolToVisConverter}, ConverterParameter=false}"\r
+ <Grid Grid.Row="4" Grid.Column="0" Margin="10,0,10,10" Visibility="{Binding IsQueueShowingInLine, Converter={StaticResource boolToVisConverter}, ConverterParameter=false}" \r
HorizontalAlignment="Stretch" VerticalAlignment="Stretch">\r
<Grid.RowDefinitions>\r
<RowDefinition Height="Auto" />\r
<RowDefinition Height="*" />\r
</Grid.RowDefinitions>\r
<Label Content="Queue" FontWeight="Bold" Grid.Row="0"/>\r
- <ContentControl x:Name="QueueViewModel" cal:View.Context="Embedded" Grid.Row="1" />\r
+ <ContentControl cal:View.Model="{Binding QueueViewModel}" cal:View.Context="QueueTwoContent" Grid.Row="1" />\r
</Grid>\r
\r
<!-- Presets -->\r
\r
<StackPanel Orientation="Vertical" Margin="20,0,0,0">\r
<TextBlock Text="{x:Static Properties:ResourcesUI.Options_ExperimentalFeatures}" Margin="0,0,0,10" />\r
- <CheckBox Content="{x:Static Properties:ResourcesUI.Options_ShowQueueInline}" IsChecked="{Binding ShowQueueInline}" />\r
+ \r
+ <CheckBox Content="{x:Static Properties:ResourcesUI.Options_ShowExperimentalQueueDesign}" IsChecked="{Binding ShowExperimentalQueue}" />\r
+ <CheckBox Content="{x:Static Properties:ResourcesUI.Options_ShowQueueInline}" IsChecked="{Binding ShowQueueInline}" Margin="20,5,0,0" />\r
</StackPanel>\r
</StackPanel>\r
</StackPanel>\r
--- /dev/null
+<UserControl x:Class="HandBrakeWPF.Views.Queue.QueueTwoContent"
+ 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"
+ xmlns:queue="clr-namespace:HandBrakeWPF.Converters.Queue"
+ 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" />
+ <Converters:InverseBooleanConverter x:Key="notBooleanConverter" />
+ <Audio:AudioQueueDisplayConverter x:Key="audioTrackDisplayConverter" />
+ <Subtitles:SubtitlesQueueDisplayConverter x:Key="subtitleTrackDisplayConverter" />
+ <video:EncoderOptionsTooltipConverter x:Key="encoderOptionsTooltipConverter" />
+ <video:VideoOptionsTooltipConverter x:Key="videoOptionsTooltipConverter" />
+ <queue:PictureSettingsDescConveter x:Key="pictureSettingsDescConverter" />
+
+ <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>
+
+ <Grid HorizontalAlignment="Stretch" Grid.Row="0" Visibility="{Binding IsNewQueueVisible, Converter={StaticResource boolToVisConverter}}">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="*" />
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ </Grid.ColumnDefinitions>
+
+ <TextBlock Text="{x:Static Properties:ResourcesUI.MainView_ShowQueue}" FontSize="28" VerticalAlignment="Center" FontFamily="Segoe UI Light" Margin="10,0,0,0" />
+
+ <Menu HorizontalAlignment="Right" VerticalAlignment="Center" Background="Transparent" Grid.Column="2">
+ <MenuItem>
+ <MenuItem.Header>
+ <StackPanel Height="32" Orientation="Horizontal">
+ <TextBlock VerticalAlignment="Center"
+ FontWeight="Bold"
+ Text="{x:Static Properties:ResourcesUI.QueueView_WhenDone}" />
+ <Label Margin="8,0,0,0"
+ VerticalAlignment="Center"
+ Content="{Binding WhenDoneAction}" />
+ <Path Height="5"
+ Margin="2,2,2,0"
+ Data="M 0 0 L 4 4 L 8 0 Z"
+ Fill="{DynamicResource GlyphBrush}" />
+ </StackPanel>
+ </MenuItem.Header>
+
+ <MenuItem x:Name="doNothing"
+ cal:Message.Attach="[Event Click] = [Action WhenDone(doNothing.Header)]"
+ Header="{x:Static Properties:ResourcesUI.QueueView_DoNothing}" />
+ <MenuItem x:Name="shutdown"
+ cal:Message.Attach="[Event Click] = [Action WhenDone(shutdown.Header)]"
+ Header="{x:Static Properties:ResourcesUI.QueueView_Shutdown}" />
+ <MenuItem x:Name="suspend"
+ cal:Message.Attach="[Event Click] = [Action WhenDone(suspend.Header)]"
+ Header="{x:Static Properties:ResourcesUI.QueueView_Suspend}" />
+ <MenuItem x:Name="hibernate"
+ cal:Message.Attach="[Event Click] = [Action WhenDone(hibernate.Header)]"
+ Header="{x:Static Properties:ResourcesUI.QueueView_Hibernate}"/>
+ <MenuItem x:Name="lock"
+ cal:Message.Attach="[Event Click] = [Action WhenDone(lock.Header)]"
+ Header="{x:Static Properties:ResourcesUI.QueueView_LockSystem}" />
+ <MenuItem x:Name="logoff"
+ cal:Message.Attach="[Event Click] = [Action WhenDone(logoff.Header)]"
+ Header="{x:Static Properties:ResourcesUI.QueueView_Logoff}"/>
+ <MenuItem x:Name="quit"
+ cal:Message.Attach="[Event Click] = [Action WhenDone(quit.Header)]"
+ Header="{x:Static Properties:ResourcesUI.QueueView_QuitHandBrake}"/>
+ </MenuItem>
+ </Menu>
+
+ <Menu HorizontalAlignment="Right" Background="Transparent" VerticalAlignment="Center" Grid.Column="3">
+ <MenuItem>
+ <MenuItem.Header>
+ <StackPanel Height="32" Orientation="Horizontal">
+ <Image Source="..\Images\Advanced.png" Width="20" Height="20" VerticalAlignment="Center" />
+ <TextBlock VerticalAlignment="Center"
+ Text="{x:Static Properties:ResourcesUI.QueueView_Options}" Margin="5,0,0,0" />
+ <Path Height="5"
+ Margin="2,2,2,0"
+ Data="M 0 0 L 4 4 L 8 0 Z"
+ Fill="{DynamicResource GlyphBrush}" />
+ </StackPanel>
+ </MenuItem.Header>
+
+ <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_ClearQueue}" />
+ <Separator />
+ <MenuItem cal:Message.Attach="[Event Click] = [Action Export]" Header="{x:Static Properties:ResourcesUI.QueueView_Export}" />
+
+ </MenuItem>
+ </Menu>
+
+ </Grid>
+
+ <StackPanel Grid.Row="1" Margin="20,10,10,0" Visibility="{Binding IsNewQueueVisible, Converter={StaticResource boolToVisConverter}}">
+ <TextBlock Text="{Binding JobsPending}" TextWrapping="WrapWithOverflow" TextTrimming="CharacterEllipsis" />
+ <TextBlock Text="{Binding JobStatus}" TextWrapping="WrapWithOverflow" TextTrimming="CharacterEllipsis"/>
+ </StackPanel>
+
+ <Grid Grid.Row="2" Margin="0,10,0,0">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="3*" MaxWidth="400" x:Name="leftTabPanel" />
+ <ColumnDefinition Width="5*" x:Name="rightTabPanel" />
+ </Grid.ColumnDefinitions>
+
+ <ListBox Tag="{Binding}" x:Name="queueJobs"
+ Margin="10,0,10,10"
+ dd:DragDrop.DropHandler="{Binding}"
+ dd:DragDrop.IsDragSource="True"
+ dd:DragDrop.IsDropTarget="True"
+ ItemsSource="{Binding QueueTasks, Mode=OneWay}"
+ helpers:ListBoxHelper.SelectedItems="{Binding SelectedItems}"
+ SelectedItem="{Binding SelectedTask}"
+ 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 cal:Action.TargetWithoutContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}" Opened="ContextMenu_OnOpened">
+ <MenuItem cal:Message.Attach="[Event Click] = [Action StartQueue]" Header="{x:Static Properties:ResourcesUI.QueueView_Start}" />
+ <MenuItem cal:Message.Attach="[Event Click] = [Action PauseQueue]" Header="{x:Static Properties:ResourcesUI.QueueView_Pause}" />
+ <Separator />
+ <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 Header="{x:Static Properties:ResourcesUI.QueueView_OpenSourceDir}" x:Name="openSourceDir" Click="OpenSourceDir_OnClick" />
+ <MenuItem Header="{x:Static Properties:ResourcesUI.QueueView_OpenDestDir}" x:Name="openDestDir" Click="OpenDestDir_OnClick" />
+ <Separator />
+ <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" />
+ </Style>
+ </ListBox.ItemContainerStyle>
+
+ <ListBox.ItemTemplate>
+ <DataTemplate x:Name="QueueItemTemplate">
+
+ <Grid HorizontalAlignment="Stretch">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="40" />
+ <ColumnDefinition Width="*" />
+ <ColumnDefinition Width="Auto" />
+ </Grid.ColumnDefinitions>
+
+ <!-- Marker -->
+ <Image Grid.Column="0" Width="16" Height="16" SnapsToDevicePixels="True">
+
+ <Image.LayoutTransform>
+ <RotateTransform CenterX="8" CenterY="8" Angle="0"/>
+ </Image.LayoutTransform>
+
+ <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.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Duration="0:0:2" To="180" Storyboard.TargetProperty="(Image.LayoutTransform).(RotateTransform.Angle)" RepeatBehavior="Forever" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Duration="0:0:0" To="0" Storyboard.TargetProperty="(Image.LayoutTransform).(RotateTransform.Angle)"/>
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </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>
+
+ <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>
+
+ <ProgressBar Minimum="0" Height="4" Maximum="100" Name="pbStatus" Margin="0,0,5,0"
+ Value="{Binding DataContext.ProgressValue, ElementName=queueJobs}" IsIndeterminate="{Binding DataContext.IntermediateProgress, ElementName=queueJobs}"
+ Visibility="{Binding ShowEncodeProgress, Converter={StaticResource boolToVisConverter}}" />
+ </StackPanel>
+ </Grid>
+ </DataTemplate>
+ </ListBox.ItemTemplate>
+ </ListBox>
+
+ <TabControl x:Name="summaryTabControl" Grid.Column="1" Margin="0,0,10,10">
+ <TabItem Header="Summary" >
+ <ScrollViewer VerticalScrollBarVisibility="Auto" Margin="5,5,0,5">
+
+ <StackPanel Orientation="Vertical" Margin="5,5,0,5">
+
+ <StackPanel Orientation="Horizontal" >
+
+ <StackPanel.Resources>
+ <Style TargetType="Button">
+ <Setter Property="Padding" Value="8,2" />
+ </Style>
+ </StackPanel.Resources>
+
+
+ <Button Visibility="{Binding Status, Converter={StaticResource queueStatusVisConverter}}" >
+ <Button.Content>
+ <StackPanel Orientation="Horizontal">
+ <Image Width="20" Height="20" VerticalAlignment="Center" Margin="0,0,5,0"
+ Source="../Images/Refresh.ico" ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_ResetJobStatus}">
+ </Image>
+ <TextBlock Text="Retry" />
+ </StackPanel>
+
+ </Button.Content>
+ <i:Interaction.Triggers>
+ <i:EventTrigger EventName="Click">
+ <cal:ActionMessage MethodName="RetryJob">
+ <cal:Parameter Value="{Binding SelectedTask}" />
+ </cal:ActionMessage>
+ </i:EventTrigger>
+ </i:Interaction.Triggers>
+ </Button>
+
+ <Button Margin="10,0,0,0">
+ <Button.Content>
+ <StackPanel Orientation="Horizontal">
+ <Image Width="20" Margin="0,0,5,0" Height="20" VerticalAlignment="Center"
+ Source="../Images/options24.png" ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_ResetJobStatus}">
+ </Image>
+ <TextBlock Text="Edit" />
+ </StackPanel>
+ </Button.Content>
+ <i:Interaction.Triggers>
+ <i:EventTrigger EventName="Click">
+ <cal:ActionMessage MethodName="EditJob">
+ <cal:Parameter Value="{Binding SelectedTask}" />
+ </cal:ActionMessage>
+ </i:EventTrigger>
+ </i:Interaction.Triggers>
+ </Button>
+
+ <Button Margin="10,0,0,0">
+ <Button.Content>
+ <StackPanel Orientation="Horizontal">
+ <Image Width="20" Height="20" VerticalAlignment="Center" Margin="0,0,5,0"
+ Source="../Images/delete.png" ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_ResetJobStatus}">
+ </Image>
+ <TextBlock Text="Delete" />
+ </StackPanel>
+ </Button.Content>
+ <i:Interaction.Triggers>
+ <i:EventTrigger EventName="Click">
+ <cal:ActionMessage MethodName="RemoveJob">
+ <cal:Parameter Value="{Binding SelectedTask}" />
+ </cal:ActionMessage>
+ </i:EventTrigger>
+ </i:Interaction.Triggers>
+ </Button>
+ </StackPanel>
+
+ <Grid Style="{StaticResource LongToolTipHolder}" Margin="0,5,0,0" >
+ <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="Auto" MinWidth="100" />
+ <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 SelectedTask.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 SelectedTask.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 SelectedTask.Task, Converter={StaticResource pictureSettingsDescConverter}}" 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 SelectedTask.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 SelectedTask.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 SelectedTask.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 SelectedTask.Task, Converter={StaticResource encoderOptionsTooltipConverter}}" Grid.Row="6" Grid.Column="1" TextWrapping="Wrap" />
+ </Grid>
+
+ </StackPanel>
+ </ScrollViewer>
+ </TabItem>
+ </TabControl>
+
+ </Grid>
+ </Grid>
+</UserControl>
+
--- /dev/null
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="QueueTwoView.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 QueueTwoView.xaml
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Views.Queue
+{
+ using System.Windows;
+ using System.Windows.Controls;
+ using System.Windows.Input;
+ using System.Windows.Media;
+
+ using HandBrakeWPF.Services.Queue.Model;
+ using HandBrakeWPF.ViewModels;
+
+ /// <summary>
+ /// Interaction logic for VideoView
+ /// </summary>
+ public partial class QueueTwoContent : UserControl
+ {
+ private QueueTask mouseActiveQueueTask;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="Queue2View"/> class.
+ /// </summary>
+ public QueueTwoContent()
+ {
+ this.InitializeComponent();
+ this.SizeChanged += this.Queue2View_SizeChanged;
+ }
+
+ private void Queue2View_SizeChanged(object sender, SizeChangedEventArgs e)
+ {
+ // Make the view adaptive.
+ if (e.WidthChanged)
+ {
+ this.summaryTabControl.Visibility = this.ActualWidth < 550 ? Visibility.Collapsed : Visibility.Visible;
+ this.leftTabPanel.Width = this.ActualWidth < 550 ? new GridLength(this.ActualWidth - 10, GridUnitType.Star) : new GridLength(3, GridUnitType.Star);
+ this.leftTabPanel.MaxWidth = this.ActualWidth < 550 ? 550 : 400;
+ }
+ }
+ private void ContextMenu_OnOpened(object sender, RoutedEventArgs e)
+ {
+ ContextMenu menu = sender as ContextMenu;
+ this.mouseActiveQueueTask = null;
+
+ if (menu != null)
+ {
+ Point p = Mouse.GetPosition(this);
+ HitTestResult result = VisualTreeHelper.HitTest(this, p);
+
+ if (result != null)
+ {
+ ListBoxItem listBoxItem = FindParent<ListBoxItem>(result.VisualHit);
+ if (listBoxItem != null)
+ {
+ this.mouseActiveQueueTask = listBoxItem.DataContext as QueueTask;
+ }
+ }
+ }
+
+ this.openSourceDir.IsEnabled = this.mouseActiveQueueTask != null;
+ this.openDestDir.IsEnabled = this.mouseActiveQueueTask != null;
+ }
+
+ private static T FindParent<T>(DependencyObject from) where T : class
+ {
+ DependencyObject parent = VisualTreeHelper.GetParent(from);
+
+ T result = null;
+ if (parent is T)
+ {
+ result = parent as T;
+ }
+ else if (parent != null)
+ {
+ result = FindParent<T>(parent);
+ }
+
+ return result;
+ }
+
+ private void OpenSourceDir_OnClick(object sender, RoutedEventArgs e)
+ {
+ ((QueueViewModel)this.DataContext).OpenSourceDirectory(this.mouseActiveQueueTask);
+ }
+
+ private void OpenDestDir_OnClick(object sender, RoutedEventArgs e)
+ {
+ ((QueueViewModel)this.DataContext).OpenDestinationDirectory(this.mouseActiveQueueTask);
+ }
+ }
+}
--- /dev/null
+<Window x:Class="HandBrakeWPF.Views.Queue.QueueTwoView"
+ 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:queue1="clr-namespace:HandBrakeWPF.Views.Queue"
+ Title="{Binding Title}"
+ WindowStartupLocation="CenterScreen"
+ TextOptions.TextFormattingMode="Display"
+ mc:Ignorable="d">
+
+ <queue1:QueueTwoContent DataContext="{Binding DataContext}" />
+
+</Window>
+
--- /dev/null
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="QueueTwoView.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 QueueTwoView.xaml
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Views.Queue
+{
+ using System.Windows;
+ using System.Windows.Controls;
+ using System.Windows.Input;
+ using System.Windows.Media;
+
+ using HandBrakeWPF.Services.Queue.Model;
+ using HandBrakeWPF.ViewModels;
+
+ /// <summary>
+ /// Interaction logic for VideoView
+ /// </summary>
+ public partial class QueueTwoView : Window
+ {
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="Queue2View"/> class.
+ /// </summary>
+ public QueueTwoView()
+ {
+ }
+
+
+ }
+}
xmlns:helpers="clr-namespace:HandBrakeWPF.Helpers"\r
xmlns:Properties="clr-namespace:HandBrakeWPF.Properties"\r
xmlns:queue="clr-namespace:HandBrakeWPF.Converters.Queue"\r
+ xmlns:queue1="clr-namespace:HandBrakeWPF.Views.Queue"\r
Title="{Binding Title}"\r
- Width="700"\r
+ Width="850"\r
Height="500"\r
- MinWidth="350"\r
- MinHeight="250"\r
+ MinWidth="450"\r
+ MinHeight="260"\r
WindowStartupLocation="CenterScreen"\r
TextOptions.TextFormattingMode="Display"\r
mc:Ignorable="d">\r
<Grid>\r
\r
<Grid.RowDefinitions>\r
- <RowDefinition Height="Auto" />\r
- <RowDefinition Height="Auto" />\r
<RowDefinition Height="*" />\r
</Grid.RowDefinitions>\r
\r
+ <queue1:QueueTwoContent DataContext="{Binding}" Visibility="{Binding IsNewQueueVisible, Converter={StaticResource boolToVisConverter}, ConverterParameter=false}" />\r
\r
- <ToolBar Name="mainToolBar"\r
+ <Grid Visibility="{Binding IsNewQueueVisible, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}">\r
+\r
+ <Grid.RowDefinitions>\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="*" />\r
+ </Grid.RowDefinitions>\r
+\r
+\r
+ <ToolBar Name="mainToolBar"\r
HorizontalAlignment="Stretch"\r
VerticalAlignment="Stretch"\r
SnapsToDevicePixels="True" \r
AllowDrop="False" Focusable="False" >\r
- <ToolBar.Resources>\r
- <Style TargetType="{x:Type ToolBarPanel}">\r
- <Setter Property="Orientation" Value="Vertical"/>\r
- </Style>\r
+ <ToolBar.Resources>\r
+ <Style TargetType="{x:Type ToolBarPanel}">\r
+ <Setter Property="Orientation" Value="Vertical"/>\r
+ </Style>\r
\r
- <Style BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" TargetType="{x:Type Button}" />\r
- </ToolBar.Resources>\r
+ <Style BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" TargetType="{x:Type Button}" />\r
+ </ToolBar.Resources>\r
\r
- <DockPanel Background="Transparent" HorizontalAlignment="Stretch">\r
+ <DockPanel Background="Transparent" HorizontalAlignment="Stretch">\r
\r
- <Button Name="Start" DockPanel.Dock="Left" AutomationProperties.Name="Start Queue"\r
+ <Button Name="Start" DockPanel.Dock="Left" AutomationProperties.Name="Start Queue"\r
cal:Message.Attach="[Event Click] = [Action StartQueue]"\r
IsEnabled="{Binding IsQueueRunning, Converter={StaticResource notBooleanConverter}}"\r
Visibility="{Binding IsQueueRunning,\r
Converter={StaticResource boolToVisConverter},\r
ConverterParameter=true}">\r
- <StackPanel Orientation="Horizontal">\r
- <Image Width="32"\r
+ <StackPanel Orientation="Horizontal">\r
+ <Image Width="32"\r
Height="32"\r
Source="Images/Play.png" />\r
- <Label Margin="8,0,0,0"\r
+ <Label Margin="8,0,0,0"\r
VerticalAlignment="Center"\r
Content="{x:Static Properties:ResourcesUI.QueueView_Start}" />\r
- </StackPanel>\r
- </Button>\r
+ </StackPanel>\r
+ </Button>\r
\r
- <Button Name="Pause" DockPanel.Dock="Left" AutomationProperties.Name="Pause Queue"\r
+ <Button Name="Pause" DockPanel.Dock="Left" AutomationProperties.Name="Pause Queue"\r
cal:Message.Attach="[Event Click] = [Action PauseQueueToolbar]"\r
Visibility="{Binding IsQueueRunning,\r
Converter={StaticResource boolToVisConverter},\r
ConverterParameter=false}">\r
- <StackPanel Orientation="Horizontal">\r
- <Image Width="32"\r
+ <StackPanel Orientation="Horizontal">\r
+ <Image Width="32"\r
Height="32"\r
Source="Images/Pause.png" />\r
- <Label Margin="8,0,0,0"\r
+ <Label Margin="8,0,0,0"\r
VerticalAlignment="Center"\r
Content="{x:Static Properties:ResourcesUI.QueueView_Pause}" />\r
- </StackPanel>\r
- </Button>\r
-\r
- <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" HorizontalAlignment="Right">\r
- <Menu HorizontalAlignment="Right" VerticalAlignment="Center" Background="Transparent">\r
- <MenuItem>\r
- <MenuItem.Header>\r
- <StackPanel Height="32" Orientation="Horizontal">\r
- <TextBlock VerticalAlignment="Center"\r
+ </StackPanel>\r
+ </Button>\r
+\r
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" HorizontalAlignment="Right">\r
+ <Menu HorizontalAlignment="Right" VerticalAlignment="Center" Background="Transparent">\r
+ <MenuItem>\r
+ <MenuItem.Header>\r
+ <StackPanel Height="32" Orientation="Horizontal">\r
+ <TextBlock VerticalAlignment="Center"\r
FontWeight="Bold"\r
Text="{x:Static Properties:ResourcesUI.QueueView_WhenDone}" />\r
- <Label Margin="8,0,0,0"\r
+ <Label Margin="8,0,0,0"\r
VerticalAlignment="Center"\r
Content="{Binding WhenDoneAction}" />\r
- <Path Height="5"\r
+ <Path Height="5"\r
Margin="2,2,2,0"\r
Data="M 0 0 L 4 4 L 8 0 Z"\r
Fill="{DynamicResource GlyphBrush}" />\r
- </StackPanel>\r
- </MenuItem.Header>\r
+ </StackPanel>\r
+ </MenuItem.Header>\r
\r
- <MenuItem x:Name="doNothing"\r
+ <MenuItem x:Name="doNothing"\r
cal:Message.Attach="[Event Click] = [Action WhenDone(doNothing.Header)]"\r
Header="{x:Static Properties:ResourcesUI.QueueView_DoNothing}" />\r
- <MenuItem x:Name="shutdown"\r
+ <MenuItem x:Name="shutdown"\r
cal:Message.Attach="[Event Click] = [Action WhenDone(shutdown.Header)]"\r
Header="{x:Static Properties:ResourcesUI.QueueView_Shutdown}" />\r
- <MenuItem x:Name="suspend"\r
+ <MenuItem x:Name="suspend"\r
cal:Message.Attach="[Event Click] = [Action WhenDone(suspend.Header)]"\r
Header="{x:Static Properties:ResourcesUI.QueueView_Suspend}" />\r
- <MenuItem x:Name="hibernate"\r
+ <MenuItem x:Name="hibernate"\r
cal:Message.Attach="[Event Click] = [Action WhenDone(hibernate.Header)]"\r
Header="{x:Static Properties:ResourcesUI.QueueView_Hibernate}"/>\r
- <MenuItem x:Name="lock"\r
+ <MenuItem x:Name="lock"\r
cal:Message.Attach="[Event Click] = [Action WhenDone(lock.Header)]"\r
Header="{x:Static Properties:ResourcesUI.QueueView_LockSystem}" />\r
- <MenuItem x:Name="logoff"\r
+ <MenuItem x:Name="logoff"\r
cal:Message.Attach="[Event Click] = [Action WhenDone(logoff.Header)]"\r
Header="{x:Static Properties:ResourcesUI.QueueView_Logoff}"/>\r
- <MenuItem x:Name="quit"\r
+ <MenuItem x:Name="quit"\r
cal:Message.Attach="[Event Click] = [Action WhenDone(quit.Header)]"\r
Header="{x:Static Properties:ResourcesUI.QueueView_QuitHandBrake}"/>\r
- </MenuItem>\r
- </Menu>\r
-\r
- <Menu HorizontalAlignment="Right" Background="Transparent" VerticalAlignment="Center">\r
- <MenuItem>\r
- <MenuItem.Header>\r
- <StackPanel Height="32" Orientation="Horizontal">\r
- <Image Source="Images\Advanced.png" Width="20" Height="20" VerticalAlignment="Center" />\r
- <TextBlock VerticalAlignment="Center"\r
+ </MenuItem>\r
+ </Menu>\r
+\r
+ <Menu HorizontalAlignment="Right" Background="Transparent" VerticalAlignment="Center">\r
+ <MenuItem>\r
+ <MenuItem.Header>\r
+ <StackPanel Height="32" Orientation="Horizontal">\r
+ <Image Source="Images\Advanced.png" Width="20" Height="20" VerticalAlignment="Center" />\r
+ <TextBlock VerticalAlignment="Center"\r
Text="{x:Static Properties:ResourcesUI.QueueView_Options}" Margin="5,0,0,0" />\r
- <Path Height="5"\r
+ <Path Height="5"\r
Margin="2,2,2,0"\r
Data="M 0 0 L 4 4 L 8 0 Z"\r
Fill="{DynamicResource GlyphBrush}" />\r
- </StackPanel>\r
- </MenuItem.Header>\r
+ </StackPanel>\r
+ </MenuItem.Header>\r
\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action ClearCompleted]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearCompleted}" />\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action Clear]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearQueue}" />\r
- <Separator />\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action Export]" Header="{x:Static Properties:ResourcesUI.QueueView_Export}" />\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action ClearCompleted]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearCompleted}" />\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action Clear]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearQueue}" />\r
+ <Separator />\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action Export]" Header="{x:Static Properties:ResourcesUI.QueueView_Export}" />\r
\r
- </MenuItem>\r
- </Menu>\r
+ </MenuItem>\r
+ </Menu>\r
\r
- </StackPanel>\r
+ </StackPanel>\r
\r
- </DockPanel>\r
- </ToolBar>\r
+ </DockPanel>\r
+ </ToolBar>\r
\r
- <StackPanel Grid.Row="1" Margin="10,20,10,0">\r
- <TextBlock Text="{Binding JobsPending}" TextWrapping="WrapWithOverflow" TextTrimming="CharacterEllipsis" />\r
- <TextBlock Text="{Binding JobStatus}" TextWrapping="WrapWithOverflow" TextTrimming="CharacterEllipsis"/>\r
- </StackPanel>\r
+ <StackPanel Grid.Row="1" Margin="10,20,10,0">\r
+ <TextBlock Text="{Binding JobsPending}" TextWrapping="WrapWithOverflow" TextTrimming="CharacterEllipsis" />\r
+ <TextBlock Text="{Binding JobStatus}" TextWrapping="WrapWithOverflow" TextTrimming="CharacterEllipsis"/>\r
+ </StackPanel>\r
\r
- <ListBox Grid.Row="2" Tag="{Binding}"\r
+ <ListBox Grid.Row="2" Tag="{Binding}"\r
Margin="10,20,10,10"\r
dd:DragDrop.DropHandler="{Binding}"\r
dd:DragDrop.IsDragSource="True"\r
SelectedItem="{Binding SelectedTask}"\r
SelectionMode="Extended">\r
\r
- <i:Interaction.Triggers>\r
- <commands:InputBindingTrigger>\r
- <commands:InputBindingTrigger.InputBinding>\r
- <KeyBinding Key="Delete"/>\r
- </commands:InputBindingTrigger.InputBinding>\r
- <cal:ActionMessage MethodName="RemoveSelectedJobs" />\r
- </commands:InputBindingTrigger>\r
- </i:Interaction.Triggers>\r
-\r
- <ListBox.ContextMenu>\r
- <ContextMenu cal:Action.TargetWithoutContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}" Opened="ContextMenu_OnOpened">\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action StartQueue]" Header="{x:Static Properties:ResourcesUI.QueueView_Start}" />\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action PauseQueue]" Header="{x:Static Properties:ResourcesUI.QueueView_Pause}" />\r
- <Separator />\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action ClearCompleted]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearCompleted}" />\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action Clear]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearAll}" />\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action RemoveSelectedJobs]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearSelected}" /> \r
- <Separator />\r
- <MenuItem Header="{x:Static Properties:ResourcesUI.QueueView_OpenSourceDir}" x:Name="openSourceDir" Click="OpenSourceDir_OnClick" />\r
- <MenuItem Header="{x:Static Properties:ResourcesUI.QueueView_OpenDestDir}" x:Name="openDestDir" Click="OpenDestDir_OnClick" />\r
- <Separator />\r
- <MenuItem cal:Message.Attach="[Event Click] = [Action Export]" Header="{x:Static Properties:ResourcesUI.QueueView_Export}" />\r
- </ContextMenu>\r
- </ListBox.ContextMenu>\r
-\r
- <ListBox.ItemContainerStyle>\r
- <Style TargetType="{x:Type ListBoxItem}">\r
- <Setter Property="HorizontalContentAlignment" Value="Stretch" />\r
- <Setter Property="Margin" Value="0,0,0,1" />\r
- <Setter Property="ToolTip">\r
- <Setter.Value>\r
- <Grid MaxWidth="650" Margin="0,5,0,5" Style="{StaticResource LongToolTipHolder}">\r
- <Grid.Resources>\r
- <Style TargetType="TextBlock">\r
- <Setter Property="Margin" Value="0,5,0,5" />\r
- </Style>\r
- </Grid.Resources>\r
-\r
- <Grid.RowDefinitions>\r
- <RowDefinition Height="Auto" />\r
- <RowDefinition Height="Auto" />\r
- <RowDefinition Height="Auto" />\r
- <RowDefinition Height="Auto" />\r
- <RowDefinition Height="Auto" />\r
- <RowDefinition Height="Auto" />\r
- <RowDefinition Height="Auto" />\r
- </Grid.RowDefinitions>\r
-\r
- <Grid.ColumnDefinitions>\r
- <ColumnDefinition Width="95" />\r
- <ColumnDefinition Width="*" />\r
- </Grid.ColumnDefinitions>\r
+ <i:Interaction.Triggers>\r
+ <commands:InputBindingTrigger>\r
+ <commands:InputBindingTrigger.InputBinding>\r
+ <KeyBinding Key="Delete"/>\r
+ </commands:InputBindingTrigger.InputBinding>\r
+ <cal:ActionMessage MethodName="RemoveSelectedJobs" />\r
+ </commands:InputBindingTrigger>\r
+ </i:Interaction.Triggers>\r
+\r
+ <ListBox.ContextMenu>\r
+ <ContextMenu cal:Action.TargetWithoutContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}" Opened="ContextMenu_OnOpened">\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action StartQueue]" Header="{x:Static Properties:ResourcesUI.QueueView_Start}" />\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action PauseQueue]" Header="{x:Static Properties:ResourcesUI.QueueView_Pause}" />\r
+ <Separator />\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action ClearCompleted]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearCompleted}" />\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action Clear]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearAll}" />\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action RemoveSelectedJobs]" Header="{x:Static Properties:ResourcesUI.QueueView_ClearSelected}" />\r
+ <Separator />\r
+ <MenuItem Header="{x:Static Properties:ResourcesUI.QueueView_OpenSourceDir}" x:Name="openSourceDir" Click="OpenSourceDir_OnClick" />\r
+ <MenuItem Header="{x:Static Properties:ResourcesUI.QueueView_OpenDestDir}" x:Name="openDestDir" Click="OpenDestDir_OnClick" />\r
+ <Separator />\r
+ <MenuItem cal:Message.Attach="[Event Click] = [Action Export]" Header="{x:Static Properties:ResourcesUI.QueueView_Export}" />\r
+ </ContextMenu>\r
+ </ListBox.ContextMenu>\r
+\r
+ <ListBox.ItemContainerStyle>\r
+ <Style TargetType="{x:Type ListBoxItem}">\r
+ <Setter Property="HorizontalContentAlignment" Value="Stretch" />\r
+ <Setter Property="Margin" Value="0,0,0,1" />\r
+ <Setter Property="ToolTip">\r
+ <Setter.Value>\r
+ <Grid MaxWidth="650" Margin="0,5,0,5" Style="{StaticResource LongToolTipHolder}">\r
+ <Grid.Resources>\r
+ <Style TargetType="TextBlock">\r
+ <Setter Property="Margin" Value="0,5,0,5" />\r
+ </Style>\r
+ </Grid.Resources>\r
+\r
+ <Grid.RowDefinitions>\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="Auto" />\r
+ <RowDefinition Height="Auto" />\r
+ </Grid.RowDefinitions>\r
+\r
+ <Grid.ColumnDefinitions>\r
+ <ColumnDefinition Width="95" />\r
+ <ColumnDefinition Width="*" />\r
+ </Grid.ColumnDefinitions>\r
+\r
+ <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Source}" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" />\r
+ <TextBlock Text="{Binding Task.Source}" TextWrapping="Wrap" Grid.Row="0" Grid.Column="1" />\r
+\r
+ <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Destination}" VerticalAlignment="Top" Grid.Row="1" Grid.Column="0" />\r
+ <TextBlock Text="{Binding Task.Destination}" TextWrapping="Wrap" Grid.Row="1" Grid.Column="1" />\r
+\r
+ <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_PictureSettings}" VerticalAlignment="Top" Grid.Row="2" Grid.Column="0" />\r
+ <TextBlock Text="{Binding Task, Converter={StaticResource pictureSettingsDescConverter}}" TextWrapping="Wrap" Grid.Row="2" Grid.Column="1" />\r
+\r
+ <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Video}" Grid.Row="3" Grid.Column="0" />\r
+ <TextBlock Text="{Binding Task, Converter={StaticResource videoOptionsTooltipConverter}}" Grid.Row="3" Grid.Column="1" TextWrapping="Wrap" />\r
+\r
+ <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Audio}" Grid.Row="4" Grid.Column="0"/>\r
+ <TextBlock Text="{Binding Task.AudioTracks, Converter={StaticResource audioTrackDisplayConverter}}"\r
+ Grid.Row="4" Grid.Column="1"/>\r
\r
- <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Source}" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" />\r
- <TextBlock Text="{Binding Task.Source}" TextWrapping="Wrap" Grid.Row="0" Grid.Column="1" />\r
+ <TextBlock FontWeight="Bold" VerticalAlignment="Top" Text="{x:Static Properties:ResourcesUI.QueueView_Subtitles}" Grid.Row="5" Grid.Column="0" />\r
+ <TextBlock Text="{Binding Task.SubtitleTracks, Converter={StaticResource subtitleTrackDisplayConverter}}"\r
+ Grid.Row="5" Grid.Column="1" />\r
\r
- <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Destination}" VerticalAlignment="Top" Grid.Row="1" Grid.Column="0" />\r
- <TextBlock Text="{Binding Task.Destination}" TextWrapping="Wrap" Grid.Row="1" Grid.Column="1" />\r
+ <TextBlock FontWeight="Bold" VerticalAlignment="Top" Grid.Row="6" Grid.Column="0" Text="{x:Static Properties:ResourcesUI.QueueView_Advanced}" />\r
+ <TextBlock Text="{Binding Task, Converter={StaticResource encoderOptionsTooltipConverter}}" Grid.Row="6" Grid.Column="1" TextWrapping="Wrap" />\r
+ </Grid>\r
\r
- <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_PictureSettings}" VerticalAlignment="Top" Grid.Row="2" Grid.Column="0" />\r
- <TextBlock Text="{Binding Task, Converter={StaticResource pictureSettingsDescConverter}}" TextWrapping="Wrap" Grid.Row="2" Grid.Column="1" />\r
+ </Setter.Value>\r
+ </Setter>\r
\r
- <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Video}" Grid.Row="3" Grid.Column="0" />\r
- <TextBlock Text="{Binding Task, Converter={StaticResource videoOptionsTooltipConverter}}" Grid.Row="3" Grid.Column="1" TextWrapping="Wrap" />\r
+ </Style>\r
+ </ListBox.ItemContainerStyle>\r
\r
- <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Audio}" Grid.Row="4" Grid.Column="0"/>\r
- <TextBlock Text="{Binding Task.AudioTracks, Converter={StaticResource audioTrackDisplayConverter}}"\r
- Grid.Row="4" Grid.Column="1"/>\r
+ <ListBox.ItemTemplate>\r
+ <DataTemplate x:Name="QueueItemTemplate">\r
\r
- <TextBlock FontWeight="Bold" VerticalAlignment="Top" Text="{x:Static Properties:ResourcesUI.QueueView_Subtitles}" Grid.Row="5" Grid.Column="0" />\r
- <TextBlock Text="{Binding Task.SubtitleTracks, Converter={StaticResource subtitleTrackDisplayConverter}}"\r
- Grid.Row="5" Grid.Column="1" />\r
+ <Grid HorizontalAlignment="Stretch">\r
+ <Grid.ColumnDefinitions>\r
+ <ColumnDefinition Width="40" />\r
+ <ColumnDefinition Width="*" />\r
+ <ColumnDefinition Width="Auto" />\r
+ </Grid.ColumnDefinitions>\r
\r
- <TextBlock FontWeight="Bold" VerticalAlignment="Top" Grid.Row="6" Grid.Column="0" Text="{x:Static Properties:ResourcesUI.QueueView_Advanced}" />\r
- <TextBlock Text="{Binding Task, Converter={StaticResource encoderOptionsTooltipConverter}}" Grid.Row="6" Grid.Column="1" TextWrapping="Wrap" />\r
- </Grid>\r
+ <!-- Marker -->\r
+ <Image Grid.Column="0" Width="16" Height="16" SnapsToDevicePixels="True">\r
+\r
+ <Image.LayoutTransform>\r
+ <RotateTransform CenterX="8" CenterY="8" Angle="0"/>\r
+ </Image.LayoutTransform>\r
+\r
+ <Image.Style>\r
+ <Style TargetType="{x:Type Image}">\r
+ <Style.Triggers>\r
+ <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Waiting">\r
+ <Setter Property="Source" Value="Images\Movies.png" />\r
+ </DataTrigger>\r
+ <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="In Progress">\r
+ <Setter Property="Source" Value="Images\Working0.png" />\r
+ <DataTrigger.EnterActions>\r
+ <BeginStoryboard>\r
+ <Storyboard>\r
+ <DoubleAnimation Duration="0:0:2" To="180" Storyboard.TargetProperty="(Image.LayoutTransform).(RotateTransform.Angle)" RepeatBehavior="Forever" />\r
+ </Storyboard>\r
+ </BeginStoryboard>\r
+ </DataTrigger.EnterActions>\r
+ <DataTrigger.ExitActions>\r
+ <BeginStoryboard>\r
+ <Storyboard>\r
+ <DoubleAnimation Duration="0:0:0" To="0" Storyboard.TargetProperty="(Image.LayoutTransform).(RotateTransform.Angle)"/>\r
+ </Storyboard>\r
+ </BeginStoryboard>\r
+ </DataTrigger.ExitActions>\r
+ </DataTrigger>\r
+ <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Completed">\r
+ <Setter Property="Source" Value="Images\Complete.png" />\r
+ </DataTrigger>\r
+ <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Error">\r
+ <Setter Property="Source" Value="Images\WarningSmall.png" />\r
+ </DataTrigger>\r
+ </Style.Triggers>\r
+ </Style>\r
+ </Image.Style>\r
+ </Image>\r
\r
- </Setter.Value>\r
- </Setter>\r
- \r
- </Style>\r
- </ListBox.ItemContainerStyle>\r
-\r
- <ListBox.ItemTemplate>\r
- <DataTemplate x:Name="QueueItemTemplate">\r
- \r
- <Grid HorizontalAlignment="Stretch">\r
- <Grid.ColumnDefinitions>\r
- <ColumnDefinition Width="40" />\r
- <ColumnDefinition Width="*" />\r
- <ColumnDefinition Width="Auto" />\r
- </Grid.ColumnDefinitions>\r
-\r
- <!-- Marker -->\r
- <Image Grid.Column="0" Width="16" Height="16" SnapsToDevicePixels="True">\r
-\r
- <Image.LayoutTransform>\r
- <RotateTransform CenterX="8" CenterY="8" Angle="0"/>\r
- </Image.LayoutTransform>\r
-\r
- <Image.Style>\r
- <Style TargetType="{x:Type Image}">\r
- <Style.Triggers>\r
- <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Waiting">\r
- <Setter Property="Source" Value="Images\Movies.png" />\r
- </DataTrigger>\r
- <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="In Progress">\r
- <Setter Property="Source" Value="Images\Working0.png" />\r
- <DataTrigger.EnterActions>\r
- <BeginStoryboard>\r
- <Storyboard>\r
- <DoubleAnimation Duration="0:0:2" To="180" Storyboard.TargetProperty="(Image.LayoutTransform).(RotateTransform.Angle)" RepeatBehavior="Forever" />\r
- </Storyboard>\r
- </BeginStoryboard>\r
- </DataTrigger.EnterActions>\r
- <DataTrigger.ExitActions>\r
- <BeginStoryboard>\r
- <Storyboard>\r
- <DoubleAnimation Duration="0:0:0" To="0" Storyboard.TargetProperty="(Image.LayoutTransform).(RotateTransform.Angle)"/>\r
- </Storyboard>\r
- </BeginStoryboard>\r
- </DataTrigger.ExitActions>\r
- </DataTrigger>\r
- <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Completed">\r
- <Setter Property="Source" Value="Images\Complete.png" />\r
- </DataTrigger>\r
- <DataTrigger Binding="{Binding Status, Converter={StaticResource enumComboConverter}}" Value="Error">\r
- <Setter Property="Source" Value="Images\WarningSmall.png" />\r
- </DataTrigger>\r
- </Style.Triggers>\r
- </Style>\r
- </Image.Style>\r
- </Image>\r
-\r
- <!-- Settings -->\r
- <StackPanel Grid.Column="1"\r
+ <!-- Settings -->\r
+ <StackPanel Grid.Column="1"\r
Margin="0,5,0,5"\r
HorizontalAlignment="Stretch">\r
- <StackPanel Orientation="Horizontal">\r
- <TextBlock FontWeight="Bold" Text="Title: " />\r
- <TextBlock Text="{Binding Task.Title}" />\r
+ <StackPanel Orientation="Horizontal">\r
+ <TextBlock FontWeight="Bold" Text="Title: " />\r
+ <TextBlock Text="{Binding Task.Title}" />\r
\r
- <TextBlock Margin="10,0,0,0"\r
+ <TextBlock Margin="10,0,0,0"\r
FontWeight="Bold"\r
Text="{Binding Task.PointToPointMode}" />\r
- <TextBlock Text=": " />\r
- <TextBlock Text="{Binding Task.StartPoint}" />\r
- <TextBlock Margin="5,0,5,0" Text="to" />\r
- <TextBlock Text="{Binding Task.EndPoint}" />\r
- </StackPanel>\r
+ <TextBlock Text=": " />\r
+ <TextBlock Text="{Binding Task.StartPoint}" />\r
+ <TextBlock Margin="5,0,5,0" Text="to" />\r
+ <TextBlock Text="{Binding Task.EndPoint}" />\r
+ </StackPanel>\r
\r
- <!-- TODO Support Drive Label Name -->\r
- <StackPanel Orientation="Horizontal">\r
- <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Source}" />\r
- <TextBlock Text="{Binding Task.Source, Converter={StaticResource filePathToFilenameConverter}}" />\r
- </StackPanel>\r
+ <!-- TODO Support Drive Label Name -->\r
+ <StackPanel Orientation="Horizontal">\r
+ <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Source}" />\r
+ <TextBlock Text="{Binding Task.Source, Converter={StaticResource filePathToFilenameConverter}}" />\r
+ </StackPanel>\r
\r
- <StackPanel Orientation="Horizontal">\r
- <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Destination}" />\r
- <TextBlock Text="{Binding Task.Destination, Converter={StaticResource filePathToFilenameConverter}}" />\r
+ <StackPanel Orientation="Horizontal">\r
+ <TextBlock FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.QueueView_Destination}" />\r
+ <TextBlock Text="{Binding Task.Destination, Converter={StaticResource filePathToFilenameConverter}}" />\r
+ </StackPanel>\r
</StackPanel>\r
- </StackPanel>\r
\r
- <!-- Delete -->\r
- <Grid Grid.Column="2"\r
+ <!-- Delete -->\r
+ <Grid Grid.Column="2"\r
Margin="10,0,10,0"\r
VerticalAlignment="Center">\r
\r
- <Grid.RowDefinitions>\r
- <RowDefinition Height="Auto" />\r
- </Grid.RowDefinitions>\r
+ <Grid.RowDefinitions>\r
+ <RowDefinition Height="Auto" />\r
+ </Grid.RowDefinitions>\r
\r
- <Grid.ColumnDefinitions>\r
- <ColumnDefinition Width="Auto" />\r
- <ColumnDefinition Width="Auto" />\r
- <ColumnDefinition Width="Auto" />\r
- </Grid.ColumnDefinitions>\r
+ <Grid.ColumnDefinitions>\r
+ <ColumnDefinition Width="Auto" />\r
+ <ColumnDefinition Width="Auto" />\r
+ <ColumnDefinition Width="Auto" />\r
+ </Grid.ColumnDefinitions>\r
\r
- <Button Visibility="{Binding Status, Converter={StaticResource queueStatusVisConverter}}"\r
+ <Button Visibility="{Binding Status, Converter={StaticResource queueStatusVisConverter}}"\r
Grid.Row="0" Grid.Column="0" Margin="0,5,0,0">\r
- <Button.Template>\r
- <ControlTemplate>\r
- <Image Width="20" \r
+ <Button.Template>\r
+ <ControlTemplate>\r
+ <Image Width="20" \r
Height="20" VerticalAlignment="Center"\r
Source="Images/Refresh.ico"\r
ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_ResetJobStatus}">\r
- </Image>\r
- </ControlTemplate>\r
- </Button.Template>\r
- <i:Interaction.Triggers>\r
- <i:EventTrigger EventName="Click">\r
- <cal:ActionMessage MethodName="RetryJob">\r
- <cal:Parameter Value="{Binding}" />\r
- </cal:ActionMessage>\r
- </i:EventTrigger>\r
- </i:Interaction.Triggers>\r
- </Button>\r
-\r
- <Button Grid.Row="0" Grid.Column="1" Margin="10,5,0,0">\r
- <Button.Template>\r
- <ControlTemplate>\r
- <Image Width="20" \r
+ </Image>\r
+ </ControlTemplate>\r
+ </Button.Template>\r
+ <i:Interaction.Triggers>\r
+ <i:EventTrigger EventName="Click">\r
+ <cal:ActionMessage MethodName="RetryJob">\r
+ <cal:Parameter Value="{Binding}" />\r
+ </cal:ActionMessage>\r
+ </i:EventTrigger>\r
+ </i:Interaction.Triggers>\r
+ </Button>\r
+\r
+ <Button Grid.Row="0" Grid.Column="1" Margin="10,5,0,0">\r
+ <Button.Template>\r
+ <ControlTemplate>\r
+ <Image Width="20" \r
Height="20" VerticalAlignment="Center"\r
Source="Images/Options24.png"\r
ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_SendJobBack}">\r
- </Image>\r
- </ControlTemplate>\r
- </Button.Template>\r
- <i:Interaction.Triggers>\r
- <i:EventTrigger EventName="Click">\r
- <cal:ActionMessage MethodName="EditJob">\r
- <cal:Parameter Value="{Binding}" />\r
- </cal:ActionMessage>\r
- </i:EventTrigger>\r
- </i:Interaction.Triggers>\r
- </Button>\r
-\r
- <Button Grid.Row="0" Grid.Column="2" Margin="10,5,0,0">\r
- <Button.Template>\r
- <ControlTemplate>\r
- <Image Width="20" \r
+ </Image>\r
+ </ControlTemplate>\r
+ </Button.Template>\r
+ <i:Interaction.Triggers>\r
+ <i:EventTrigger EventName="Click">\r
+ <cal:ActionMessage MethodName="EditJob">\r
+ <cal:Parameter Value="{Binding}" />\r
+ </cal:ActionMessage>\r
+ </i:EventTrigger>\r
+ </i:Interaction.Triggers>\r
+ </Button>\r
+\r
+ <Button Grid.Row="0" Grid.Column="2" Margin="10,5,0,0">\r
+ <Button.Template>\r
+ <ControlTemplate>\r
+ <Image Width="20" \r
Height="20" VerticalAlignment="Center" \r
Source="Images/delete.png"\r
ToolTip="{x:Static Properties:ResourcesTooltips.QueueView_DeleteJob}">\r
- </Image>\r
- </ControlTemplate>\r
- </Button.Template>\r
- <i:Interaction.Triggers>\r
- <i:EventTrigger EventName="Click">\r
- <cal:ActionMessage MethodName="RemoveJob">\r
- <cal:Parameter Value="{Binding}" />\r
- </cal:ActionMessage>\r
- </i:EventTrigger>\r
- </i:Interaction.Triggers>\r
- </Button>\r
+ </Image>\r
+ </ControlTemplate>\r
+ </Button.Template>\r
+ <i:Interaction.Triggers>\r
+ <i:EventTrigger EventName="Click">\r
+ <cal:ActionMessage MethodName="RemoveJob">\r
+ <cal:Parameter Value="{Binding}" />\r
+ </cal:ActionMessage>\r
+ </i:EventTrigger>\r
+ </i:Interaction.Triggers>\r
+ </Button>\r
\r
\r
- </Grid>\r
+ </Grid>\r
\r
- </Grid>\r
- </DataTemplate>\r
- </ListBox.ItemTemplate>\r
- </ListBox>\r
+ </Grid>\r
+ </DataTemplate>\r
+ </ListBox.ItemTemplate>\r
+ </ListBox>\r
\r
\r
+ </Grid>\r
</Grid>\r
</Window>\r
\r