diff options
Diffstat (limited to 'win/CS/HandBrakeWPF/ViewModels')
-rw-r--r-- | win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs | 16 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs | 57 |
2 files changed, 61 insertions, 12 deletions
diff --git a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs index 59d442393..a6ae77489 100644 --- a/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs @@ -166,9 +166,6 @@ namespace HandBrakeWPF.ViewModels /// Initializes a new instance of the <see cref="MainViewModel"/> class.
/// The viewmodel for HandBrakes main window.
/// </summary>
- /// <param name="windowManager">
- /// The window manager.
- /// </param>
/// <param name="userSettingService">
/// The User Setting Service
/// </param>
@@ -193,7 +190,7 @@ namespace HandBrakeWPF.ViewModels /// <param name="driveDetectService">
/// The drive Detect Service.
/// </param>
- public MainViewModel(IWindowManager windowManager, IUserSettingService userSettingService, IScan scanService, IEncode encodeService, IPresetService presetService,
+ public MainViewModel(IUserSettingService userSettingService, IScan scanService, IEncode encodeService, IPresetService presetService,
IErrorService errorService, IShellViewModel shellViewModel, IUpdateService updateService, IDriveDetectService driveDetectService)
{
GeneralUtilities.SetInstanceId();
@@ -808,6 +805,11 @@ namespace HandBrakeWPF.ViewModels this.SourceMenu = this.GenerateSourceMenu();
this.driveDetectService.StartDetection(this.DriveTrayChanged);
+
+ if (this.userSettingService.GetUserSetting<bool>(UserSettingConstants.EnableProcessIsolation))
+ {
+ this.EnableIsolationServices();
+ }
}
/// <summary>
@@ -1181,7 +1183,7 @@ namespace HandBrakeWPF.ViewModels /// The test isolation services.
/// Swaps out the implementation of IScan to the IsolatedScanService version.
/// </summary>
- public void TestIsolationServices()
+ public void EnableIsolationServices()
{
// Unhook the old services
this.scanService.ScanStared -= this.ScanStared;
@@ -1190,8 +1192,8 @@ namespace HandBrakeWPF.ViewModels this.queueProcessor.EncodeService.EncodeStatusChanged -= this.EncodeStatusChanged;
// Replace the Services
- this.scanService = new IsolatedScanService(this.errorService);
- this.encodeService = new IsolatedEncodeService(this.errorService);
+ this.scanService = new IsolatedScanService(this.errorService, this.userSettingService);
+ this.encodeService = new IsolatedEncodeService(this.errorService, this.userSettingService);
this.queueProcessor.SwapEncodeService(this.encodeService);
// Add the new Event Hooks
diff --git a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs index 119cb9d10..963abdf60 100644 --- a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs @@ -22,6 +22,7 @@ namespace HandBrakeWPF.ViewModels using Caliburn.Micro;
using HandBrake.ApplicationServices;
+ using HandBrake.ApplicationServices.Exceptions;
using HandBrake.ApplicationServices.Services.Interfaces;
using HandBrake.ApplicationServices.Utilities;
@@ -338,6 +339,16 @@ namespace HandBrakeWPF.ViewModels /// </summary>
private UpdateCheckInformation updateInfo;
+ /// <summary>
+ /// The enable process isolation.
+ /// </summary>
+ private bool enableProcessIsolation;
+
+ /// <summary>
+ /// The server port.
+ /// </summary>
+ private int serverPort;
+
#endregion
#region Constructors and Destructors
@@ -345,9 +356,6 @@ namespace HandBrakeWPF.ViewModels /// <summary>
/// Initializes a new instance of the <see cref="OptionsViewModel"/> class.
/// </summary>
- /// <param name="windowManager">
- /// The window manager.
- /// </param>
/// <param name="userSettingService">
/// The user Setting Service.
/// </param>
@@ -357,7 +365,7 @@ namespace HandBrakeWPF.ViewModels /// <param name="updateService">
/// The update Service.
/// </param>
- public OptionsViewModel(IWindowManager windowManager, IUserSettingService userSettingService, IShellViewModel shellViewModel, IUpdateService updateService )
+ public OptionsViewModel(IUserSettingService userSettingService, IShellViewModel shellViewModel, IUpdateService updateService )
{
this.Title = "Options";
this.userSettingService = userSettingService;
@@ -1313,6 +1321,38 @@ namespace HandBrakeWPF.ViewModels }
}
+ /// <summary>
+ /// Gets or sets a value indicating whether ClearQueueOnEncodeCompleted.
+ /// </summary>
+ public bool EnableProcessIsolation
+ {
+ get
+ {
+ return this.enableProcessIsolation;
+ }
+ set
+ {
+ this.enableProcessIsolation = value;
+ this.NotifyOfPropertyChange(() => this.EnableProcessIsolation);
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the server port.
+ /// </summary>
+ public int ServerPort
+ {
+ get
+ {
+ return this.serverPort;
+ }
+ set
+ {
+ this.serverPort = value;
+ this.NotifyOfPropertyChange(() => this.ServerPort);
+ }
+ }
+
#endregion
#endregion
@@ -1601,8 +1641,13 @@ namespace HandBrakeWPF.ViewModels // Min Title Length
this.MinLength = this.userSettingService.GetUserSetting<int>(ASUserSettingConstants.MinScanDuration);
- // Use Experimental dvdnav
+ // Use dvdnav
this.DisableLibdvdNav = userSettingService.GetUserSetting<bool>(ASUserSettingConstants.DisableLibDvdNav);
+
+ int port;
+ int.TryParse(userSettingService.GetUserSetting<string>(UserSettingConstants.ServerPort), out port);
+ this.ServerPort = port;
+ this.EnableProcessIsolation = userSettingService.GetUserSetting<bool>(UserSettingConstants.EnableProcessIsolation);
}
/// <summary>
@@ -1817,6 +1862,8 @@ namespace HandBrakeWPF.ViewModels }
userSettingService.SetUserSetting(ASUserSettingConstants.DisableLibDvdNav, this.DisableLibdvdNav);
+ userSettingService.SetUserSetting(UserSettingConstants.EnableProcessIsolation, this.EnableProcessIsolation);
+ userSettingService.SetUserSetting(UserSettingConstants.ServerPort, this.ServerPort.ToString());
}
/// <summary>
|