summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr55 <[email protected]>2011-12-30 22:21:44 +0000
committersr55 <[email protected]>2011-12-30 22:21:44 +0000
commitaad50499b32c44d28a6bae7f353b579e24564e25 (patch)
tree7e5f309e184d9d65785de1a00d4b94735a65b7cf
parentcd3e951792f05944fb9ba4f1bc17e581318bfe8f (diff)
WinGui: (WPF) Bug fixes, Initial work on the Filters View
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4394 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--win/CS/HandBrakeWPF/HandBrakeWPF.csproj6
-rw-r--r--win/CS/HandBrakeWPF/Services/Interfaces/IJobContextService.cs30
-rw-r--r--win/CS/HandBrakeWPF/Services/JobContextService.cs32
-rw-r--r--win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs7
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/FiltersViewModel.cs239
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs2
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs2
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs16
-rw-r--r--win/CS/HandBrakeWPF/ViewModels/ViewModelBase.cs5
-rw-r--r--win/CS/HandBrakeWPF/Views/FiltersView.xaml34
-rw-r--r--win/CS/HandBrakeWPF/Views/OptionsView.xaml2
11 files changed, 353 insertions, 22 deletions
diff --git a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
index 055ee5372..17c12b9a2 100644
--- a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
+++ b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj
@@ -85,8 +85,10 @@
<Compile Include="Helpers\AutoNameHelper.cs" />
<Compile Include="Helpers\ListBoxHelper.cs" />
<Compile Include="Services\ErrorService.cs" />
+ <Compile Include="Services\Interfaces\IJobContextService.cs" />
<Compile Include="Services\Interfaces\IErrorService.cs" />
<Compile Include="Services\Interfaces\IUpdateVersionService.cs" />
+ <Compile Include="Services\JobContextService.cs" />
<Compile Include="Services\UpdateVersionService.cs" />
<Compile Include="Startup\CastleBootstrapper.cs" />
<Compile Include="Startup\MefBootstrapper.cs" />
@@ -318,9 +320,7 @@
<Name>HandBrakeInterop</Name>
</ProjectReference>
</ItemGroup>
- <ItemGroup>
- <Folder Include="Factories\" />
- </ItemGroup>
+ <ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(ProgramFiles)\MSBuild\StyleCop\v4.*\StyleCop.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
diff --git a/win/CS/HandBrakeWPF/Services/Interfaces/IJobContextService.cs b/win/CS/HandBrakeWPF/Services/Interfaces/IJobContextService.cs
new file mode 100644
index 000000000..d1301026b
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Services/Interfaces/IJobContextService.cs
@@ -0,0 +1,30 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="IJobContextService.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>
+// Defines the IJobContextService type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Services.Interfaces
+{
+ using HandBrake.ApplicationServices.Model;
+ using HandBrake.ApplicationServices.Parsing;
+
+ /// <summary>
+ /// A Context service for the current Job Information
+ /// </summary>
+ public interface IJobContextService
+ {
+ /// <summary>
+ /// Gets or sets CurrentTask.
+ /// </summary>
+ EncodeTask CurrentTask { get; set; }
+
+ /// <summary>
+ /// Gets or sets CurrentSource.
+ /// </summary>
+ Source CurrentSource { get; set; }
+ }
+} \ No newline at end of file
diff --git a/win/CS/HandBrakeWPF/Services/JobContextService.cs b/win/CS/HandBrakeWPF/Services/JobContextService.cs
new file mode 100644
index 000000000..b5f3060a5
--- /dev/null
+++ b/win/CS/HandBrakeWPF/Services/JobContextService.cs
@@ -0,0 +1,32 @@
+// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="JobContextService.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>
+// Defines the JobContextService type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.Services
+{
+ using HandBrake.ApplicationServices.Model;
+ using HandBrake.ApplicationServices.Parsing;
+
+ using HandBrakeWPF.Services.Interfaces;
+
+ /// <summary>
+ /// A Context service for the current Job Information.
+ /// </summary>
+ public class JobContextService : IJobContextService
+ {
+ /// <summary>
+ /// Gets or sets CurrentTask.
+ /// </summary>
+ public EncodeTask CurrentTask { get; set; }
+
+ /// <summary>
+ /// Gets or sets CurrentSource.
+ /// </summary>
+ public Source CurrentSource { get; set; }
+ }
+}
diff --git a/win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs b/win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs
index 2fe913baa..e43358e79 100644
--- a/win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs
+++ b/win/CS/HandBrakeWPF/Startup/CastleBootstrapper.cs
@@ -7,9 +7,6 @@
// </summary>
// --------------------------------------------------------------------------------------------------------------------
-using HandBrakeWPF.Services;
-using HandBrakeWPF.Services.Interfaces;
-
namespace HandBrakeWPF.Startup
{
using System;
@@ -28,6 +25,9 @@ namespace HandBrakeWPF.Startup
using ViewModels;
using ViewModels.Interfaces;
+ using HandBrakeWPF.Services;
+ using HandBrakeWPF.Services.Interfaces;
+
/// <summary>
/// The Castle Bootstrapper
/// </summary>
@@ -62,6 +62,7 @@ namespace HandBrakeWPF.Startup
this.windsorContainer.Register(Component.For<IAboutViewModel>().ImplementedBy<AboutViewModel>().LifeStyle.Is(LifestyleType.Singleton));
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<IJobContextService>().ImplementedBy<JobContextService>().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/FiltersViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/FiltersViewModel.cs
index 571606e1d..3b54e3295 100644
--- a/win/CS/HandBrakeWPF/ViewModels/FiltersViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/FiltersViewModel.cs
@@ -9,11 +9,15 @@
namespace HandBrakeWPF.ViewModels
{
+ using System.Collections.Generic;
using System.ComponentModel.Composition;
using Caliburn.Micro;
+ using HandBrake.ApplicationServices.Functions;
+ using HandBrake.ApplicationServices.Model;
using HandBrake.ApplicationServices.Services.Interfaces;
+ using HandBrake.Interop.Model.Encoding;
using HandBrakeWPF.ViewModels.Interfaces;
@@ -23,6 +27,37 @@ namespace HandBrakeWPF.ViewModels
[Export(typeof(IFiltersViewModel))]
public class FiltersViewModel : ViewModelBase, IFiltersViewModel
{
+ #region Constants and Fields
+
+ /// <summary>
+ /// Backing field for the deblock value
+ /// </summary>
+ private int deblockValue;
+
+ /// <summary>
+ /// Backing field for the selected deinterlace value
+ /// </summary>
+ private Deinterlace selectedDeInterlace;
+
+ /// <summary>
+ /// Backing field for the selected decomb value
+ /// </summary>
+ private Decomb selectedDecomb;
+
+ /// <summary>
+ /// Backing field for the selected denoise value
+ /// </summary>
+ private Denoise selectedDenoise;
+
+ /// <summary>
+ /// Backing field for the selected detelecine value
+ /// </summary>
+ private Detelecine selectedDetelecine;
+
+ #endregion
+
+ #region Constructors and Destructors
+
/// <summary>
/// Initializes a new instance of the <see cref="FiltersViewModel"/> class.
/// </summary>
@@ -34,6 +69,208 @@ namespace HandBrakeWPF.ViewModels
/// </param>
public FiltersViewModel(IWindowManager windowManager, IUserSettingService userSettingService)
{
+ this.CurrentTask = new EncodeTask();
+ }
+
+ #endregion
+
+ #region Properties
+
+ /// <summary>
+ /// Gets CurrentTask.
+ /// </summary>
+ public EncodeTask CurrentTask { get; private set; }
+
+ /// <summary>
+ /// Gets DeInterlaceOptions.
+ /// </summary>
+ public IEnumerable<string> DeInterlaceOptions
+ {
+ get
+ {
+ return EnumHelper<Deinterlace>.GetEnumDisplayValues(typeof(Deinterlace));
+ }
+ }
+
+ /// <summary>
+ /// Gets DeblockText.
+ /// </summary>
+ public string DeblockText
+ {
+ get
+ {
+ return this.DeblockValue == 4 ? "Off" : this.DeblockValue.ToString();
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets DeblockValue.
+ /// </summary>
+ public int DeblockValue
+ {
+ get
+ {
+ return this.deblockValue;
+ }
+ set
+ {
+ this.deblockValue = value;
+ this.NotifyOfPropertyChange("DeblockValue");
+ this.NotifyOfPropertyChange("DeblockText");
+ }
+ }
+
+ /// <summary>
+ /// Gets DecombOptions.
+ /// </summary>
+ public IEnumerable<string> DecombOptions
+ {
+ get
+ {
+ return EnumHelper<Decomb>.GetEnumDisplayValues(typeof(Decomb));
+ }
+ }
+
+ /// <summary>
+ /// Gets DenoiseOptions.
+ /// </summary>
+ public IEnumerable<string> DenoiseOptions
+ {
+ get
+ {
+ return EnumHelper<Denoise>.GetEnumDisplayValues(typeof(Denoise));
+ }
+ }
+
+ /// <summary>
+ /// Gets DetelecineOptions.
+ /// </summary>
+ public IEnumerable<string> DetelecineOptions
+ {
+ get
+ {
+ return EnumHelper<Detelecine>.GetEnumDisplayValues(typeof(Detelecine));
+ }
}
+
+ /// <summary>
+ /// Gets or sets a value indicating whether Grayscale.
+ /// </summary>
+ public bool Grayscale { get; set; }
+
+ /// <summary>
+ /// Gets or sets SelectedDeInterlace.
+ /// </summary>
+ public string SelectedDeInterlace
+ {
+ get
+ {
+ return EnumHelper<Deinterlace>.GetDisplay(this.selectedDeInterlace);
+ }
+
+ set
+ {
+ this.selectedDeInterlace = EnumHelper<Deinterlace>.GetValue(value);
+ if (this.selectedDeInterlace != Deinterlace.Off)
+ {
+ this.SelectedDecomb = EnumHelper<Decomb>.GetDisplay(Decomb.Off);
+ }
+ this.NotifyOfPropertyChange("SelectedDeInterlace");
+
+ // Show / Hide the Custom Control
+ this.ShowDeinterlaceCustom = this.selectedDeInterlace == Deinterlace.Custom;
+ this.NotifyOfPropertyChange("ShowDeinterlaceCustom");
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets SelectedDecomb.
+ /// </summary>
+ public string SelectedDecomb
+ {
+ get
+ {
+ return EnumHelper<Decomb>.GetDisplay(this.selectedDecomb);
+ }
+
+ set
+ {
+ this.selectedDecomb = EnumHelper<Decomb>.GetValue(value);
+ if (this.selectedDecomb != Decomb.Off)
+ {
+ this.SelectedDeInterlace = EnumHelper<Deinterlace>.GetDisplay(Deinterlace.Off);
+ }
+
+ this.NotifyOfPropertyChange("SelectedDecomb");
+
+ // Show / Hide the Custom Control
+ this.ShowDecombCustom = this.selectedDecomb == Decomb.Custom;
+ this.NotifyOfPropertyChange("ShowDecombCustom");
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets SelectedDenoise.
+ /// </summary>
+ public string SelectedDenoise
+ {
+ get
+ {
+ return EnumHelper<Denoise>.GetDisplay(this.selectedDenoise);
+ }
+
+ set
+ {
+ this.selectedDenoise = EnumHelper<Denoise>.GetValue(value);
+ this.NotifyOfPropertyChange("SelectedDenoise");
+
+ // Show / Hide the Custom Control
+ this.ShowDenoiseCustom = this.selectedDenoise == Denoise.Custom;
+ this.NotifyOfPropertyChange("ShowDenoiseCustom");
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets SelectedDetelecine.
+ /// </summary>
+ public string SelectedDetelecine
+ {
+ get
+ {
+ return EnumHelper<Detelecine>.GetDisplay(this.selectedDetelecine);
+ }
+
+ set
+ {
+ this.selectedDetelecine = EnumHelper<Detelecine>.GetValue(value);
+ this.NotifyOfPropertyChange("SelectedDetelecine");
+
+ // Show / Hide the Custom Control
+ this.ShowDetelecineCustom = this.selectedDetelecine == Detelecine.Custom;
+ this.NotifyOfPropertyChange("ShowDetelecineCustom");
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether ShowDecombCustom.
+ /// </summary>
+ public bool ShowDecombCustom { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether ShowDelelecineCustom.
+ /// </summary>
+ public bool ShowDeinterlaceCustom { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether ShowDenoiseCustom.
+ /// </summary>
+ public bool ShowDenoiseCustom { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether ShowDetelecineCustom.
+ /// </summary>
+ public bool ShowDetelecineCustom { get; set; }
+
+ #endregion
}
-}
+} \ No newline at end of file
diff --git a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
index daf8bcce0..68b327ec1 100644
--- a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs
@@ -1050,6 +1050,8 @@ namespace HandBrakeWPF.ViewModels
this.NotifyOfPropertyChange("ScannedSource");
this.NotifyOfPropertyChange("ScannedSource.Titles");
this.SelectedTitle = this.ScannedSource.Titles.Where(t => t.MainTitle).FirstOrDefault();
+ this.JobContextService.CurrentSource = this.ScannedSource;
+ this.JobContextService.CurrentTask = this.CurrentTask;
}
this.SourceLabel = "Scan Completed";
diff --git a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs
index 1f5802503..dc536855e 100644
--- a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs
@@ -320,7 +320,7 @@ namespace HandBrakeWPF.ViewModels
public OptionsViewModel(IWindowManager windowManager, IUserSettingService userSettingService)
{
this.Title = "Options";
- this.userSettingService = this.UserSettingService;
+ this.userSettingService = userSettingService;
this.Load();
}
diff --git a/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs
index 60c6feb09..5fc397f41 100644
--- a/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/PictureSettingsViewModel.cs
@@ -13,6 +13,8 @@ namespace HandBrakeWPF.ViewModels
using Caliburn.Micro;
+ using HandBrake.ApplicationServices.Model;
+ using HandBrake.ApplicationServices.Parsing;
using HandBrake.ApplicationServices.Services.Interfaces;
using HandBrakeWPF.ViewModels.Interfaces;
@@ -35,5 +37,19 @@ namespace HandBrakeWPF.ViewModels
public PictureSettingsViewModel(IWindowManager windowManager, IUserSettingService userSettingService)
{
}
+
+ /// <summary>
+ /// Setup the window after a scan.
+ /// </summary>
+ /// <param name="selectedTitle">
+ /// The selected title.
+ /// </param>
+ /// <param name="currentTask">
+ /// The current task.
+ /// </param>
+ public void Setup(Title selectedTitle, EncodeTask currentTask)
+ {
+
+ }
}
}
diff --git a/win/CS/HandBrakeWPF/ViewModels/ViewModelBase.cs b/win/CS/HandBrakeWPF/ViewModels/ViewModelBase.cs
index f1766741e..dd992ef68 100644
--- a/win/CS/HandBrakeWPF/ViewModels/ViewModelBase.cs
+++ b/win/CS/HandBrakeWPF/ViewModels/ViewModelBase.cs
@@ -13,6 +13,7 @@ namespace HandBrakeWPF.ViewModels
using HandBrake.ApplicationServices.Services.Interfaces;
+ using HandBrakeWPF.Services.Interfaces;
using HandBrakeWPF.ViewModels.Interfaces;
/// <summary>
@@ -74,6 +75,10 @@ namespace HandBrakeWPF.ViewModels
/// </summary>
public IUserSettingService UserSettingService { get; set; }
+ /// <summary>
+ /// Gets or sets JobContextService.
+ /// </summary>
+ public IJobContextService JobContextService { get; set; }
#endregion
#region Public Methods
diff --git a/win/CS/HandBrakeWPF/Views/FiltersView.xaml b/win/CS/HandBrakeWPF/Views/FiltersView.xaml
index c472a84da..1460e8f16 100644
--- a/win/CS/HandBrakeWPF/Views/FiltersView.xaml
+++ b/win/CS/HandBrakeWPF/Views/FiltersView.xaml
@@ -2,8 +2,12 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- mc:Ignorable="d" >
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:Converters="clr-namespace:HandBrakeWPF.Converters" mc:Ignorable="d" >
+ <UserControl.Resources>
+ <Converters:BooleanToVisibilityConverter x:Key="boolToVisConverter" />
+ </UserControl.Resources>
+
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -30,26 +34,30 @@
</Grid.ColumnDefinitions>
<TextBlock Text="Detelecine:" Grid.Row="0" Grid.Column="0" Margin="0,0,0,10" />
- <ComboBox Width="120" Grid.Row="0" Grid.Column="1" Margin="0,0,0,10"/>
- <TextBox Width="120" Grid.Row="0" Grid.Column="2" Margin="0,0,0,10"/>
+ <ComboBox Width="120" Grid.Row="0" ItemsSource="{Binding DetelecineOptions}" SelectedItem="{Binding SelectedDetelecine}" Grid.Column="1" Margin="0,0,0,10"/>
+ <TextBox Width="120" Grid.Row="0" Grid.Column="2" Margin="0,0,0,10"
+ Visibility="{Binding ShowDetelecineCustom, Converter={StaticResource boolToVisConverter}}"/>
<TextBlock Text="Decomb:" Grid.Row="1" Grid.Column="0" Margin="0,0,0,10"/>
- <ComboBox Width="120" Grid.Row="1" Grid.Column="1" Margin="0,0,0,10"/>
- <TextBox Width="120" Grid.Row="1" Grid.Column="2" Margin="0,0,0,10"/>
+ <ComboBox Width="120" Grid.Row="1" ItemsSource="{Binding DecombOptions}" SelectedItem="{Binding SelectedDecomb}" Grid.Column="1" Margin="0,0,0,10"/>
+ <TextBox Width="120" Grid.Row="1" Grid.Column="2" Margin="0,0,0,10"
+ Visibility="{Binding ShowDecombCustom, Converter={StaticResource boolToVisConverter}}" />
<TextBlock Text="Deinterlace:" Grid.Row="2" Grid.Column="0" Margin="0,0,0,10"/>
- <ComboBox Width="120" Grid.Row="2" Grid.Column="1" Margin="0,0,0,10"/>
- <TextBox Width="120" Grid.Row="2" Grid.Column="2" Margin="0,0,0,10"/>
+ <ComboBox Width="120" Grid.Row="2" ItemsSource="{Binding DeInterlaceOptions}" SelectedItem="{Binding SelectedDeInterlace}" Grid.Column="1" Margin="0,0,0,10"/>
+ <TextBox Width="120" Grid.Row="2" Grid.Column="2" Margin="0,0,0,10"
+ Visibility="{Binding ShowDeinterlaceCustom, Converter={StaticResource boolToVisConverter}}" />
<TextBlock Text="Denoise:" Grid.Row="3" Grid.Column="0" Margin="0,0,0,10"/>
- <ComboBox Width="120" Grid.Row="3" Grid.Column="1" Margin="0,0,0,10"/>
- <TextBox Width="120" Grid.Row="3" Grid.Column="2" Margin="0,0,0,10"/>
+ <ComboBox Width="120" Grid.Row="3" ItemsSource="{Binding DenoiseOptions}" SelectedItem="{Binding SelectedDenoise}" Grid.Column="1" Margin="0,0,0,10"/>
+ <TextBox Width="120" Grid.Row="3" Grid.Column="2" Margin="0,0,0,10"
+ Visibility="{Binding ShowDenoiseCustom, Converter={StaticResource boolToVisConverter}}" />
<TextBlock Text="Deblock:" Grid.Row="4" Grid.Column="0" Margin="0,0,0,10"/>
- <Slider Width="120" Grid.Row="4" Grid.Column="1" Margin="0,0,0,10"/>
- <TextBlock Text="Off" Grid.Row="4" Grid.Column="2" Margin="0,0,0,10"/>
+ <Slider Width="120" Value="{Binding DeblockValue}" Minimum="4" Maximum="15" Grid.Row="4" Grid.Column="1" Margin="0,0,0,10"/>
+ <TextBlock Text="{Binding DeblockText}" Grid.Row="4" Grid.Column="2" Margin="0,0,0,10"/>
- <CheckBox Content="Grayscale" Grid.Row="5" Grid.Column="1" Margin="0,0,0,10"/>
+ <CheckBox Content="Grayscale" IsChecked="{Binding Grayscale}" Grid.Row="5" Grid.Column="1" Margin="0,0,0,10"/>
</Grid>
</StackPanel>
diff --git a/win/CS/HandBrakeWPF/Views/OptionsView.xaml b/win/CS/HandBrakeWPF/Views/OptionsView.xaml
index 7b58e5511..5b19d1c0e 100644
--- a/win/CS/HandBrakeWPF/Views/OptionsView.xaml
+++ b/win/CS/HandBrakeWPF/Views/OptionsView.xaml
@@ -143,7 +143,7 @@
<TextBox Name="vlcPath" Text="{Binding VLCPath}" Width="180" />
<Button Content="Browse" cal:Message.Attach="[Event Click] = [Action BrowseVlcPath]" Margin="5,0,0,0" Width="55"/>
</StackPanel>
- <TextBlock Text="This path is used for the view preview feature only." />
+ <TextBlock Text="This path is used for the video preview feature only." />
</StackPanel>
</Grid>