summaryrefslogtreecommitdiffstats
path: root/win/CS
diff options
context:
space:
mode:
Diffstat (limited to 'win/CS')
-rw-r--r--win/CS/HandBrake.ApplicationServices/Parsing/Title.cs3
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/SourceData/Title.cs17
-rw-r--r--win/CS/HandBrakeWPF/HandBrakeWPF.csproj10
-rw-r--r--win/CS/HandBrakeWPF/Model/SelectionTitle.cs88
-rw-r--r--win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs2
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/Interfaces/IQueueSelectionViewModel.cs40
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs32
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/QueueSelectionViewModel.cs198
-rw-r--r--win/CS/HandBrakeWPF/Views/AddPresetView.xaml.cs4
-rw-r--r--win/CS/HandBrakeWPF/Views/MainView.xaml1
-rw-r--r--win/CS/HandBrakeWPF/Views/QueueSelectionView.xaml140
-rw-r--r--win/CS/HandBrakeWPF/Views/QueueSelectionView.xaml.cs27
12 files changed, 554 insertions, 8 deletions
diff --git a/win/CS/HandBrake.ApplicationServices/Parsing/Title.cs b/win/CS/HandBrake.ApplicationServices/Parsing/Title.cs
index 04d00c1f2..f834c4fa9 100644
--- a/win/CS/HandBrake.ApplicationServices/Parsing/Title.cs
+++ b/win/CS/HandBrake.ApplicationServices/Parsing/Title.cs
@@ -16,9 +16,6 @@ namespace HandBrake.ApplicationServices.Parsing
using System.Linq;
using System.Text.RegularExpressions;
- using Caliburn.Micro;
-
- using HandBrake.ApplicationServices.Services.Interfaces;
using HandBrake.Interop.Model;
using Size = System.Drawing.Size;
diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/SourceData/Title.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/SourceData/Title.cs
index 344759c1d..fbe8e8532 100644
--- a/win/CS/HandBrake.Interop/HandBrakeInterop/SourceData/Title.cs
+++ b/win/CS/HandBrake.Interop/HandBrakeInterop/SourceData/Title.cs
@@ -19,9 +19,20 @@ namespace HandBrake.Interop.SourceData
/// </summary>
public class Title
{
- private readonly List<AudioTrack> audioTracks;
- private readonly List<Chapter> chapters;
- private readonly List<Subtitle> subtitles;
+ /// <summary>
+ /// The audio tracks.
+ /// </summary>
+ private readonly List<AudioTrack> audioTracks;
+
+ /// <summary>
+ /// The chapters.
+ /// </summary>
+ private readonly List<Chapter> chapters;
+
+ /// <summary>
+ /// The subtitles.
+ /// </summary>
+ private readonly List<Subtitle> subtitles;
/// <summary>
/// Initializes a new instance of the Title class.
diff --git a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
index a7076bf6e..e0d2e7696 100644
--- a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
+++ b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
@@ -151,6 +151,7 @@
<Compile Include="Helpers\GrayscaleImage.cs" />
<Compile Include="Helpers\GrowlCommunicator.cs" />
<Compile Include="Model\OptionsTab.cs" />
+ <Compile Include="Model\SelectionTitle.cs" />
<Compile Include="Services\DriveDetectService.cs" />
<Compile Include="Services\EncodeServiceWrapper.cs" />
<Compile Include="Services\Interfaces\IDriveDetectService.cs" />
@@ -163,6 +164,11 @@
<Compile Include="Services\NotificationService.cs" />
<Compile Include="Services\ScanServiceWrapper.cs" />
<Compile Include="Services\UpdateService.cs" />
+ <Compile Include="ViewModels\Interfaces\IQueueSelectionViewModel.cs" />
+ <Compile Include="ViewModels\QueueSelectionViewModel.cs" />
+ <Compile Include="Views\QueueSelectionView.xaml.cs">
+ <DependentUpon>QueueSelectionView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Views\ShellView.xaml.cs">
<DependentUpon>ShellView.xaml</DependentUpon>
</Compile>
@@ -317,6 +323,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Views\QueueSelectionView.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
<Page Include="Views\ShellView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
diff --git a/win/CS/HandBrakeWPF/Model/SelectionTitle.cs b/win/CS/HandBrakeWPF/Model/SelectionTitle.cs
new file mode 100644
index 000000000..63ad47793
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Model/SelectionTitle.cs
@@ -0,0 +1,88 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="SelectionTitle.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>
+// TODO: Update summary.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Model
+{
+ using Caliburn.Micro;
+
+ using HandBrake.ApplicationServices.Parsing;
+
+ /// <summary>
+ /// A model for the multiple selection window for adding to the queue.
+ /// </summary>
+ public class SelectionTitle : PropertyChangedBase
+ {
+ /// <summary>
+ /// The source name.
+ /// </summary>
+ private readonly string sourceName;
+
+ /// <summary>
+ /// The is selected.
+ /// </summary>
+ private bool isSelected;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="SelectionTitle"/> class.
+ /// </summary>
+ /// <param name="title">
+ /// The title.
+ /// </param>
+ /// <param name="sourceName">
+ /// The source Name.
+ /// </param>
+ public SelectionTitle(Title title, string sourceName)
+ {
+ this.sourceName = sourceName;
+ this.Title = title;
+ }
+
+ /// <summary>
+ /// Gets the source name.
+ /// </summary>
+ public string SourceName
+ {
+ get
+ {
+ return !string.IsNullOrEmpty(Title.SourceName) ? Title.SourceName : sourceName;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the end point.
+ /// </summary>
+ public int EndPoint { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether is selected.
+ /// </summary>
+ public bool IsSelected
+ {
+ get
+ {
+ return this.isSelected;
+ }
+ set
+ {
+ this.isSelected = value;
+ this.NotifyOfPropertyChange(() => this.IsSelected);
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the start point.
+ /// </summary>
+ public int StartPoint { get; set; }
+
+ /// <summary>
+ /// Gets or sets the title.
+ /// </summary>
+ public Title Title { get; set; }
+ }
+} \ No newline at end of file
diff --git a/win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs b/win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs
index 5b06c97ba..97930ba4d 100644
--- a/win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs
+++ b/win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs
@@ -78,6 +78,8 @@ namespace HandBrakeWPF.Startup
this.windsorContainer.Register(Component.For<IOptionsViewModel>().ImplementedBy<OptionsViewModel>().LifeStyle.Is(LifestyleType.Singleton));
this.windsorContainer.Register(Component.For<IUpdateVersionService>().ImplementedBy<UpdateVersionService>().LifeStyle.Is(LifestyleType.Singleton));
this.windsorContainer.Register(Component.For<ITitleSpecificViewModel>().ImplementedBy<TitleSpecificViewModel>().LifeStyle.Is(LifestyleType.Singleton));
+ this.windsorContainer.Register(Component.For<IQueueSelectionViewModel>().ImplementedBy<QueueSelectionViewModel>().LifeStyle.Is(LifestyleType.Singleton));
+
// Tab Components
this.windsorContainer.Register(Component.For<IAudioViewModel>().ImplementedBy<AudioViewModel>().LifeStyle.Is(LifestyleType.Singleton));
diff --git a/win/CS/HandBrakeWPF/ViewModels/Interfaces/IQueueSelectionViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/Interfaces/IQueueSelectionViewModel.cs
new file mode 100644
index 000000000..36a64846a
--- /dev/null
+++ b/win/CS/HandBrakeWPF/ViewModels/Interfaces/IQueueSelectionViewModel.cs
@@ -0,0 +1,40 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="IQueueSelectionViewModel.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>
+// The Queue Selection View Model Interface
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.ViewModels.Interfaces
+{
+ using System.Collections.Generic;
+ using System.ComponentModel;
+
+ using HandBrake.ApplicationServices.Parsing;
+
+ using HandBrakeWPF.Model;
+
+ /// <summary>
+ /// The Add Preset View Model
+ /// </summary>
+ public interface IQueueSelectionViewModel
+ {
+ /// <summary>
+ /// Gets the selected titles.
+ /// </summary>
+ BindingList<SelectionTitle> TitleList { get; }
+
+ /// <summary>
+ /// The setup.
+ /// </summary>
+ /// <param name="scannedSource">
+ /// The scanned source.
+ /// </param>
+ /// <param name="sourceName">
+ /// The source Name.
+ /// </param>
+ void Setup(Source scannedSource, string sourceName);
+ }
+}
diff --git a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
index 2db2c66c7..1d4d0e7ed 100644
--- a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
@@ -1034,6 +1034,38 @@ namespace HandBrakeWPF.ViewModels
}
/// <summary>
+ /// The add selection to queue.
+ /// </summary>
+ public void AddSelectionToQueue()
+ {
+ if (this.ScannedSource == null || this.ScannedSource.Titles == null || this.ScannedSource.Titles.Count == 0)
+ {
+ this.errorService.ShowMessageBox("You must first scan a source and setup your job before adding to the queue.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
+ return;
+ }
+
+ if (!AutoNameHelper.IsAutonamingEnabled())
+ {
+ this.errorService.ShowMessageBox("You must turn on automatic file naming in preferences before you can add to the queue.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
+ return;
+ }
+
+ Window window = Application.Current.Windows.Cast<Window>().FirstOrDefault(x => x.GetType() == typeof(QueueSelectionViewModel));
+ IQueueSelectionViewModel viewModel = IoC.Get<IQueueSelectionViewModel>();
+
+ viewModel.Setup(this.ScannedSource, this.SourceName);
+
+ if (window != null)
+ {
+ window.Activate();
+ }
+ else
+ {
+ this.WindowManager.ShowWindow(viewModel);
+ }
+ }
+
+ /// <summary>
/// Folder Scan
/// </summary>
public void FolderScan()
diff --git a/win/CS/HandBrakeWPF/ViewModels/QueueSelectionViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/QueueSelectionViewModel.cs
new file mode 100644
index 000000000..c5b6072cc
--- /dev/null
+++ b/win/CS/HandBrakeWPF/ViewModels/QueueSelectionViewModel.cs
@@ -0,0 +1,198 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="QueueSelectionViewModel.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>
+// The Queue Selection View Model
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.ViewModels
+{
+ using System;
+ using System.Collections.Generic;
+ using System.ComponentModel;
+ using System.Linq;
+
+ using HandBrake.ApplicationServices.Parsing;
+
+ using HandBrakeWPF.Model;
+ using HandBrakeWPF.Services.Interfaces;
+ using HandBrakeWPF.ViewModels.Interfaces;
+
+ /// <summary>
+ /// The Queue Selection View Model
+ /// </summary>
+ public class QueueSelectionViewModel : ViewModelBase, IQueueSelectionViewModel
+ {
+ /// <summary>
+ /// The error service.
+ /// </summary>
+ private readonly IErrorService errorService;
+
+ /// <summary>
+ /// The ordered by duration.
+ /// </summary>
+ private bool orderedByDuration;
+
+ /// <summary>
+ /// The ordered by title.
+ /// </summary>
+ private bool orderedByTitle;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="QueueSelectionViewModel"/> class.
+ /// </summary>
+ /// <param name="errorService">
+ /// The Error Service
+ /// </param>
+ public QueueSelectionViewModel(IErrorService errorService)
+ {
+ this.errorService = errorService;
+ this.Title = "Add to Queue";
+ this.TitleList = new BindingList<SelectionTitle>();
+ this.OrderedByTitle = true;
+ }
+
+ /// <summary>
+ /// Gets or sets the source.
+ /// </summary>
+ public string Source { get; set; }
+
+ /// <summary>
+ /// Gets or sets the selected titles.
+ /// </summary>
+ public BindingList<SelectionTitle> TitleList { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether ordered by title.
+ /// </summary>
+ public bool OrderedByTitle
+ {
+ get
+ {
+ return this.orderedByTitle;
+ }
+
+ set
+ {
+ this.orderedByTitle = value;
+ this.NotifyOfPropertyChange(() => OrderedByTitle);
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether ordered by duration.
+ /// </summary>
+ public bool OrderedByDuration
+ {
+ get
+ {
+ return this.orderedByDuration;
+ }
+
+ set
+ {
+ this.orderedByDuration = value;
+ this.NotifyOfPropertyChange(() => OrderedByDuration);
+ }
+ }
+
+ /// <summary>
+ /// The order by title.
+ /// </summary>
+ public void OrderByTitle()
+ {
+ TitleList = new BindingList<SelectionTitle>(TitleList.OrderBy(o => o.Title.TitleNumber).ToList());
+ this.NotifyOfPropertyChange(() => TitleList);
+ this.OrderedByTitle = true;
+ this.OrderedByDuration = false;
+ }
+
+ /// <summary>
+ /// The order by duration.
+ /// </summary>
+ public void OrderByDuration()
+ {
+ TitleList = new BindingList<SelectionTitle>(TitleList.OrderByDescending(o => o.Title.Duration).ToList());
+ this.NotifyOfPropertyChange(() => TitleList);
+ this.OrderedByTitle = false;
+ this.OrderedByDuration = true;
+ }
+
+ /// <summary>
+ /// The select all.
+ /// </summary>
+ public void SelectAll()
+ {
+ foreach (var item in TitleList)
+ {
+ item.IsSelected = true;
+ }
+ }
+
+ /// <summary>
+ /// The select all.
+ /// </summary>
+ public void UnSelectAll()
+ {
+ foreach (var item in TitleList)
+ {
+ item.IsSelected = false;
+ }
+ }
+
+ /// <summary>
+ /// Add a Preset
+ /// </summary>
+ public void Add()
+ {
+ this.Close();
+ }
+
+ /// <summary>
+ /// Cancel adding a preset
+ /// </summary>
+ public void Cancel()
+ {
+ this.TitleList.Clear();
+ this.Close();
+ }
+
+ /// <summary>
+ /// Close this window.
+ /// </summary>
+ public void Close()
+ {
+ this.TryClose();
+ }
+
+ /// <summary>
+ /// The setup.
+ /// </summary>
+ /// <param name="scannedSource">
+ /// The scanned source.
+ /// </param>
+ /// <param name="srcName">
+ /// The src Name.
+ /// </param>
+ public void Setup(Source scannedSource, string srcName)
+ {
+ this.TitleList.Clear();
+
+ if (scannedSource != null)
+ {
+
+ IEnumerable<Title> titles = orderedByTitle
+ ? scannedSource.Titles
+ : scannedSource.Titles.OrderByDescending(o => o.Duration).ToList();
+
+ foreach (Title item in titles)
+ {
+ SelectionTitle title = new SelectionTitle(item, srcName);
+ TitleList.Add(title);
+ }
+ }
+ }
+ }
+}
diff --git a/win/CS/HandBrakeWPF/Views/AddPresetView.xaml.cs b/win/CS/HandBrakeWPF/Views/AddPresetView.xaml.cs
index 91968fdc0..d3485d2c0 100644
--- a/win/CS/HandBrakeWPF/Views/AddPresetView.xaml.cs
+++ b/win/CS/HandBrakeWPF/Views/AddPresetView.xaml.cs
@@ -3,7 +3,7 @@
// 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 VideoView.xaml
+// Interaction logic for AddPresetView.xaml
// </summary>
// --------------------------------------------------------------------------------------------------------------------
@@ -12,7 +12,7 @@ namespace HandBrakeWPF.Views
using System.Windows;
/// <summary>
- /// Interaction logic for VideoView.xaml
+ /// Interaction logic for AddPresetView.xaml
/// </summary>
public partial class AddPresetView : Window
{
diff --git a/win/CS/HandBrakeWPF/Views/MainView.xaml b/win/CS/HandBrakeWPF/Views/MainView.xaml
index 76dbf7872..1131e5bdd 100644
--- a/win/CS/HandBrakeWPF/Views/MainView.xaml
+++ b/win/CS/HandBrakeWPF/Views/MainView.xaml
@@ -269,6 +269,7 @@
</StackPanel>
</MenuItem.Header>
<MenuItem Header="Add All" Micro:Message.Attach="[Event Click] = [Action AddAllToQueue]" />
+ <!--<MenuItem Header="Add Selection" Micro:Message.Attach="[Event Click] = [Action AddSelectionToQueue]" />-->
</MenuItem>
</Menu>
diff --git a/win/CS/HandBrakeWPF/Views/QueueSelectionView.xaml b/win/CS/HandBrakeWPF/Views/QueueSelectionView.xaml
new file mode 100644
index 000000000..b46b07ff5
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Views/QueueSelectionView.xaml
@@ -0,0 +1,140 @@
+<Window x:Class="HandBrakeWPF.Views.QueueSelectionView"
+ 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:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ Title="{Binding Title}"
+ Width="450"
+ MaxHeight="450"
+ SizeToContent="Height"
+ WindowStartupLocation="CenterScreen"
+ TextOptions.TextFormattingMode="Display"
+ mc:Ignorable="d">
+
+ <Window.Resources>
+
+ <Style x:Key="LongToolTipHolder" TargetType="FrameworkElement">
+ <Setter Property="ToolTipService.ShowDuration" Value="20000" />
+ <Setter Property="Margin" Value="0,2,0,2" />
+ </Style>
+ </Window.Resources>
+
+ <Grid HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ Background="#FFF1F0EF">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="*" />
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+
+ <!-- Header -->
+ <StackPanel Grid.Row="0"
+ Height="30"
+ Margin="0,0,0,10"
+ Background="White"
+ Orientation="Horizontal">
+ <Image Width="24"
+ Height="24"
+ Margin="10,0,5,0"
+ VerticalAlignment="Center"
+ Source="Images/AddToQueue_small.png" />
+ <StackPanel VerticalAlignment="Center" Orientation="Vertical">
+ <TextBlock FontWeight="Bold" Text="Queue Multiple Items" />
+ </StackPanel>
+ </StackPanel>
+
+ <!-- Text -->
+ <StackPanel Orientation="Vertical" Grid.Row="1" Margin="10,10,10,0">
+ <TextBlock Text="Select multiple titles to add: " />
+ </StackPanel>
+
+ <!-- Selection -->
+ <ListBox Grid.Row="2"
+ Margin="10,10,10,10"
+ VerticalAlignment="Stretch"
+ Background="LightGray"
+ ItemsSource="{Binding TitleList}"
+ SelectionMode="Single">
+ <ListBox.ItemContainerStyle>
+ <Style TargetType="ListBoxItem">
+ <Setter Property="HorizontalContentAlignment" Value="Stretch" />
+ <Setter Property="Background" Value="WhiteSmoke" />
+ <Setter Property="Margin" Value="0,0,0,1" />
+ </Style>
+ </ListBox.ItemContainerStyle>
+
+ <ListBox.ContextMenu>
+ <ContextMenu>
+ <MenuItem Header="Select All" cal:Message.Attach="[Event Click] = [Action SelectAll]" />
+ <MenuItem Header="Select All" cal:Message.Attach="[Event Click] = [Action UnSelectAll]" />
+ <Separator />
+ <MenuItem Header="Order by Title" IsChecked="{Binding OrderedByTitle}" cal:Message.Attach="[Event Click] = [Action OrderByTitle]" />
+ <MenuItem Header="Order by Duration" IsChecked="{Binding OrderedByDuration}" cal:Message.Attach="[Event Click] = [Action OrderByDuration]" />
+ </ContextMenu>
+ </ListBox.ContextMenu>
+
+ <ListBox.ItemTemplate>
+ <DataTemplate>
+ <Grid HorizontalAlignment="Stretch" MinHeight="28">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="*" />
+ <ColumnDefinition Width="Auto" />
+ </Grid.ColumnDefinitions>
+
+ <CheckBox IsChecked="{Binding IsSelected}" Grid.RowSpan="2" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" />
+
+ <StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" Margin="10,0,0,0" >
+ <TextBlock Text="Title:" Margin="0,0,5,0" FontWeight="Bold" />
+ <TextBlock Text="{Binding Title}" Margin="5,0,5,0" />
+ </StackPanel>
+
+ <StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal" Margin="10,0,0,0" >
+ <TextBlock Text="Source:" Margin="0,0,5,0" FontWeight="Bold" />
+ <TextBlock Text="{Binding SourceName}" Margin="5,0,5,0" />
+ </StackPanel>
+ </Grid>
+
+ </DataTemplate>
+ </ListBox.ItemTemplate>
+ </ListBox>
+
+ <!-- Checlist -->
+ <StackPanel Orientation="Vertical" Grid.Row="3" Margin="10,10,10,0">
+ <TextBlock Text="Checklist " />
+ </StackPanel>
+
+ <!-- Controls -->
+ <Grid Grid.Row="4"
+ Margin="0,20,0,0"
+ Background="LightGray">
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="*" />
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="Auto" />
+ </Grid.ColumnDefinitions>
+
+ <Button Grid.Column="1"
+ Margin="0,5,10,5"
+ cal:Message.Attach="[Event Click] = [Action Cancel]"
+ Content="Cancel"
+ IsCancel="True"
+ Padding="8,2" />
+ <Button Grid.Column="2"
+ Margin="0,5,10,5"
+ cal:Message.Attach="[Event Click] = [Action Add]"
+ Content="Add"
+ IsDefault="True"
+ Padding="8,2" />
+ </Grid>
+
+ </Grid>
+</Window>
diff --git a/win/CS/HandBrakeWPF/Views/QueueSelectionView.xaml.cs b/win/CS/HandBrakeWPF/Views/QueueSelectionView.xaml.cs
new file mode 100644
index 000000000..553c7201f
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Views/QueueSelectionView.xaml.cs
@@ -0,0 +1,27 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="QueueSelectionView.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 QueueSelectionView.xaml
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Views
+{
+ using System.Windows;
+
+ /// <summary>
+ /// Interaction logic for QueueSelectionView.xaml
+ /// </summary>
+ public partial class QueueSelectionView : Window
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="QueueSelectionView"/> class.
+ /// </summary>
+ public QueueSelectionView()
+ {
+ InitializeComponent();
+ }
+ }
+}