diff options
-rw-r--r-- | win/CS/HandBrakeWPF/Factories/ViewModelFactory.cs | 24 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/HandBrakeWPF.csproj | 17 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/ViewModels/LogViewModel.cs | 30 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs | 740 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Views/LogView.xaml | 8 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Views/LogView.xaml.cs | 26 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Views/MainView.xaml | 10 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/Views/OptionsView.xaml | 131 | ||||
-rw-r--r-- | win/CS/HandBrakeWPF/defaultsettings.xml | 411 |
9 files changed, 1064 insertions, 333 deletions
diff --git a/win/CS/HandBrakeWPF/Factories/ViewModelFactory.cs b/win/CS/HandBrakeWPF/Factories/ViewModelFactory.cs index e8e298546..6b110fcd1 100644 --- a/win/CS/HandBrakeWPF/Factories/ViewModelFactory.cs +++ b/win/CS/HandBrakeWPF/Factories/ViewModelFactory.cs @@ -9,16 +9,38 @@ namespace HandBrakeWPF.Factories
{
+ using Caliburn.Micro;
+
+ using HandBrake.ApplicationServices.Services.Interfaces;
+
/// <summary>
/// The View Model Factory
/// </summary>
public class ViewModelFactory
{
/// <summary>
+ /// The Window Manager
+ /// </summary>
+ private readonly IWindowManager windowManager;
+
+ /// <summary>
+ /// The User Setting Service
+ /// </summary>
+ private readonly IUserSettingService userSettingsService;
+
+ /// <summary>
/// Initializes a new instance of the <see cref="ViewModelFactory"/> class.
/// </summary>
- public ViewModelFactory()
+ /// <param name="windowManager">
+ /// The window Manager.
+ /// </param>
+ /// <param name="userSettingsService">
+ /// The user Settings Service.
+ /// </param>
+ public ViewModelFactory(IWindowManager windowManager, IUserSettingService userSettingsService)
{
+ this.windowManager = windowManager;
+ this.userSettingsService = userSettingsService;
}
}
}
diff --git a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj index 8737b9958..f94cf2a28 100644 --- a/win/CS/HandBrakeWPF/HandBrakeWPF.csproj +++ b/win/CS/HandBrakeWPF/HandBrakeWPF.csproj @@ -48,6 +48,9 @@ <Reference Include="Common.Logging">
<HintPath>..\libraries\caliburn\Common.Logging.dll</HintPath>
</Reference>
+ <Reference Include="Ookii.Dialogs.Wpf">
+ <HintPath>..\libraries\OokiiDialogs\Ookii.Dialogs.Wpf.dll</HintPath>
+ </Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
@@ -81,6 +84,7 @@ <Compile Include="ViewModels\Interfaces\IMainViewModel.cs" />
<Compile Include="ViewModels\Interfaces\IOptionsViewModel.cs" />
<Compile Include="ViewModels\Interfaces\IViewModelBase.cs" />
+ <Compile Include="ViewModels\LogViewModel.cs" />
<Compile Include="ViewModels\PreviewViewModel.cs" />
<Compile Include="ViewModels\QueueViewModel.cs" />
<Compile Include="ViewModels\OptionsViewModel.cs" />
@@ -105,6 +109,9 @@ <Compile Include="Views\AddPresetView.xaml.cs">
<DependentUpon>AddPresetView.xaml</DependentUpon>
</Compile>
+ <Compile Include="Views\LogView.xaml.cs">
+ <DependentUpon>LogView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Views\PreviewView.xaml.cs">
<DependentUpon>PreviewView.xaml</DependentUpon>
</Compile>
@@ -179,6 +186,10 @@ <Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
+ <Page Include="Views\LogView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Views\PreviewView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -216,7 +227,11 @@ <Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
- <ItemGroup />
+ <ItemGroup>
+ <Content Include="defaultsettings.xml">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
<ItemGroup>
<Resource Include="Views\Images\ActivityWindow.png" />
</ItemGroup>
diff --git a/win/CS/HandBrakeWPF/ViewModels/LogViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/LogViewModel.cs new file mode 100644 index 000000000..b0159669f --- /dev/null +++ b/win/CS/HandBrakeWPF/ViewModels/LogViewModel.cs @@ -0,0 +1,30 @@ +// --------------------------------------------------------------------------------------------------------------------
+// <copyright file="LogViewModel.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 LogViewModel type.
+// </summary>
+// --------------------------------------------------------------------------------------------------------------------
+
+namespace HandBrakeWPF.ViewModels
+{
+ using Caliburn.Micro;
+
+ /// <summary>
+ /// The Log View Model
+ /// </summary>
+ public class LogViewModel : ViewModelBase
+ {
+ /// <summary>
+ /// Initializes a new instance of the <see cref="LogViewModel"/> class.
+ /// </summary>
+ /// <param name="windowManager">
+ /// The window manager.
+ /// </param>
+ public LogViewModel(IWindowManager windowManager)
+ : base(windowManager)
+ {
+ }
+ }
+}
diff --git a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs index f27d71b59..68a4ecf5d 100644 --- a/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs +++ b/win/CS/HandBrakeWPF/ViewModels/OptionsViewModel.cs @@ -9,12 +9,16 @@ namespace HandBrakeWPF.ViewModels
{
+ using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.ComponentModel.Composition;
+ using System.Diagnostics;
using System.Globalization;
using System.IO;
+ using System.Linq;
+ using System.Windows;
using Caliburn.Micro;
@@ -24,6 +28,8 @@ namespace HandBrakeWPF.ViewModels using HandBrakeWPF.ViewModels.Interfaces;
+ using Ookii.Dialogs.Wpf;
+
/// <summary>
/// The Options View Model
/// </summary>
@@ -38,11 +44,6 @@ namespace HandBrakeWPF.ViewModels private readonly IUserSettingService userSettingService;
/// <summary>
- /// A Property to block Saving while the screen is loading.
- /// </summary>
- private bool isLoading = true;
-
- /// <summary>
/// The add audio mode options.
/// </summary>
private BindingList<string> addAudioModeOptions = new BindingList<string>();
@@ -268,6 +269,12 @@ namespace HandBrakeWPF.ViewModels private string sendFileTo;
/// <summary>
+ /// The send file to Path.
+ /// </summary>
+ private string sendFileToPath;
+
+
+ /// <summary>
/// The show cli window.
/// </summary>
private bool showCliWindow;
@@ -316,615 +323,628 @@ namespace HandBrakeWPF.ViewModels #region Properties
+ #region General
+
/// <summary>
- /// Gets or sets AddAudioModeOptions.
+ /// Gets or sets a value indicating whether CheckForUpdates.
/// </summary>
- public BindingList<string> AddAudioModeOptions
+ public bool CheckForUpdates
{
get
{
- return this.addAudioModeOptions;
+ return this.checkForUpdates;
}
set
{
- this.addAudioModeOptions = value;
- this.NotifyOfPropertyChange("AddAudioModeOptions");
+ this.checkForUpdates = value;
+ this.NotifyOfPropertyChange("CheckForUpdates");
}
}
/// <summary>
- /// Gets or sets a value indicating whether AddClosedCaptions.
+ /// Gets or sets CheckForUpdatesFrequencies.
/// </summary>
- public bool AddClosedCaptions
+ public BindingList<string> CheckForUpdatesFrequencies
{
get
{
- return this.addClosedCaptions;
+ return this.checkForUpdatesFrequencies;
}
set
{
- this.addClosedCaptions = value;
- this.NotifyOfPropertyChange("AddClosedCaptions");
+ this.checkForUpdatesFrequencies = value;
+ this.NotifyOfPropertyChange("CheckForUpdatesFrequencies");
}
}
/// <summary>
- /// Gets or sets a value indicating whether AddOnlyOneAudioTrackPerLanguage.
+ /// Gets or sets a value indicating whether CheckForUpdatesFrequency.
/// </summary>
- public bool AddOnlyOneAudioTrackPerLanguage
+ public int CheckForUpdatesFrequency
{
get
{
- return this.addOnlyOneAudioTrackPerLanguage;
+ return this.checkForUpdatesFrequency;
}
set
{
- this.addOnlyOneAudioTrackPerLanguage = value;
- this.NotifyOfPropertyChange("AddOnlyOneAudioTrackPerLanguage");
+ this.checkForUpdatesFrequency = value;
+ this.NotifyOfPropertyChange("CheckForUpdatesFrequency");
}
}
/// <summary>
- /// Gets or sets AddSubtitleModeOptions.
+ /// Gets or sets Arguments.
/// </summary>
- public BindingList<string> AddSubtitleModeOptions
+ public string Arguments
{
get
{
- return this.addSubtitleModeOptions;
+ return this.arguments;
}
set
{
- this.addSubtitleModeOptions = value;
- this.NotifyOfPropertyChange("AddSubtitleModeOptions");
+ this.arguments = value;
+ this.NotifyOfPropertyChange("Arguments");
}
}
/// <summary>
- /// Gets or sets Arguments.
+ /// Gets or sets a value indicating whether GrowlAfterEncode.
/// </summary>
- public string Arguments
+ public bool GrowlAfterEncode
{
get
{
- return this.arguments;
+ return this.growlAfterEncode;
}
set
{
- this.arguments = value;
- this.NotifyOfPropertyChange("Arguments");
+ this.growlAfterEncode = value;
+ this.NotifyOfPropertyChange("GrowlAfterEncode");
}
}
/// <summary>
- /// Gets or sets AutoNameDefaultPath.
+ /// Gets or sets a value indicating whether GrowlAfterQueue.
/// </summary>
- public string AutoNameDefaultPath
+ public bool GrowlAfterQueue
{
get
{
- return this.autoNameDefaultPath;
+ return this.growlAfterQueue;
}
set
{
- this.autoNameDefaultPath = value;
- this.NotifyOfPropertyChange("AutoNameDefaultPath");
+ this.growlAfterQueue = value;
+ this.NotifyOfPropertyChange("GrowlAfterQueue");
}
}
/// <summary>
- /// Gets or sets a value indicating whether AutomaticallyNameFiles.
+ /// Gets or sets a value indicating whether SendFileAfterEncode.
/// </summary>
- public bool AutomaticallyNameFiles
+ public bool SendFileAfterEncode
{
get
{
- return this.automaticallyNameFiles;
+ return this.sendFileAfterEncode;
}
set
{
- this.automaticallyNameFiles = value;
- this.NotifyOfPropertyChange("AutomaticallyNameFiles");
+ this.sendFileAfterEncode = value;
+ this.NotifyOfPropertyChange("SendFileAfterEncode");
}
}
/// <summary>
- /// Gets or sets AutonameFormat.
+ /// Gets or sets SendFileTo.
/// </summary>
- public string AutonameFormat
+ public string SendFileTo
{
get
{
- return this.autonameFormat;
+ return this.sendFileTo;
}
set
{
- this.autonameFormat = value;
- this.NotifyOfPropertyChange("AutonameFormat");
+ this.sendFileTo = value;
+ this.NotifyOfPropertyChange("SendFileTo");
}
}
/// <summary>
- /// Gets or sets AvailableLanguages.
+ /// Gets or sets SendFileToPath.
/// </summary>
- public BindingList<string> AvailableLanguages
+ public string SendFileToPath
{
get
{
- return this.availableLanguages;
+ return this.sendFileToPath;
}
set
{
- this.availableLanguages = value;
- this.NotifyOfPropertyChange("AvailableLanguages");
+ this.sendFileToPath = value;
+ this.NotifyOfPropertyChange("SendFileToPath");
}
}
/// <summary>
- /// Gets or sets a value indicating whether ChangeToTitleCase.
+ /// Gets or sets a value indicating whether EnableGuiTooltips.
/// </summary>
- public bool ChangeToTitleCase
+ public bool EnableGuiTooltips
{
get
{
- return this.changeToTitleCase;
+ return this.enableGuiTooltips;
}
set
{
- this.changeToTitleCase = value;
- this.NotifyOfPropertyChange("ChangeToTitleCase");
+ this.enableGuiTooltips = value;
+ this.NotifyOfPropertyChange("EnableGuiTooltips");
}
}
/// <summary>
- /// Gets or sets a value indicating whether CheckForUpdates.
+ /// Gets or sets WhenDone.
/// </summary>
- public bool CheckForUpdates
+ public string WhenDone
{
get
{
- return this.checkForUpdates;
+ return this.whenDone;
}
set
{
- this.checkForUpdates = value;
- this.NotifyOfPropertyChange("CheckForUpdates");
+ this.whenDone = value;
+ this.NotifyOfPropertyChange("WhenDone");
}
}
/// <summary>
- /// Gets or sets CheckForUpdatesFrequencies.
+ /// Gets or sets WhenDoneOptions.
/// </summary>
- public BindingList<string> CheckForUpdatesFrequencies
+ public BindingList<string> WhenDoneOptions
{
get
{
- return this.checkForUpdatesFrequencies;
+ return this.whenDoneOptions;
}
set
{
- this.checkForUpdatesFrequencies = value;
- this.NotifyOfPropertyChange("CheckForUpdatesFrequencies");
+ this.whenDoneOptions = value;
+ this.NotifyOfPropertyChange("WhenDoneOptions");
}
}
+ #endregion
+
+ #region Output Files
/// <summary>
- /// Gets or sets a value indicating whether CheckForUpdatesFrequency.
+ /// Gets or sets AutoNameDefaultPath.
/// </summary>
- public int CheckForUpdatesFrequency
+ public string AutoNameDefaultPath
{
get
{
- return this.checkForUpdatesFrequency;
+ return this.autoNameDefaultPath;
}
set
{
- this.checkForUpdatesFrequency = value;
- this.NotifyOfPropertyChange("CheckForUpdatesFrequency");
+ this.autoNameDefaultPath = value;
+ this.NotifyOfPropertyChange("AutoNameDefaultPath");
}
}
/// <summary>
- /// Gets or sets a value indicating whether ClearOldOlgs.
+ /// Gets or sets a value indicating whether AutomaticallyNameFiles.
/// </summary>
- public bool ClearOldOlgs
+ public bool AutomaticallyNameFiles
{
get
{
- return this.clearOldOlgs;
+ return this.automaticallyNameFiles;
}
set
{
- this.clearOldOlgs = value;
- this.NotifyOfPropertyChange("ClearOldOlgs");
+ this.automaticallyNameFiles = value;
+ this.NotifyOfPropertyChange("AutomaticallyNameFiles");
}
}
/// <summary>
- /// Gets or sets ConstantQualityGranularity.
+ /// Gets or sets AutonameFormat.
/// </summary>
- public BindingList<string> ConstantQualityGranularity
+ public string AutonameFormat
{
get
{
- return this.constantQualityGranularity;
+ return this.autonameFormat;
}
set
{
- this.constantQualityGranularity = value;
- this.NotifyOfPropertyChange("ConstantQualityGranularity");
+ this.autonameFormat = value;
+ this.NotifyOfPropertyChange("AutonameFormat");
}
}
/// <summary>
- /// Gets or sets a value indicating whether CopyLogToEncodeDirectory.
+ /// Gets or sets a value indicating whether ChangeToTitleCase.
/// </summary>
- public bool CopyLogToEncodeDirectory
+ public bool ChangeToTitleCase
{
get
{
- return this.copyLogToEncodeDirectory;
+ return this.changeToTitleCase;
}
set
{
- this.copyLogToEncodeDirectory = value;
- this.NotifyOfPropertyChange("CopyLogToEncodeDirectory");
+ this.changeToTitleCase = value;
+ this.NotifyOfPropertyChange("ChangeToTitleCase");
}
}
/// <summary>
- /// Gets or sets a value indicating whether CopyLogToSepcficedLocation.
+ /// Gets or sets Mp4ExtensionOptions.
/// </summary>
- public bool CopyLogToSepcficedLocation
+ public BindingList<string> Mp4ExtensionOptions
{
get
{
- return this.copyLogToSepcficedLocation;
+ return this.mp4ExtensionOptions;
}
set
{
- this.copyLogToSepcficedLocation = value;
- this.NotifyOfPropertyChange("CopyLogToSepcficedLocation");
+ this.mp4ExtensionOptions = value;
+ this.NotifyOfPropertyChange("Mp4ExtensionOptions");
}
}
/// <summary>
- /// Gets or sets a value indicating whether DisableLibdvdNav.
+ /// Gets or sets a value indicating whether RemoveUnderscores.
/// </summary>
- public bool DisableLibdvdNav
+ public bool RemoveUnderscores
{
get
{
- return this.disableLibdvdNav;
+ return this.removeUnderscores;
}
set
{
- this.disableLibdvdNav = value;
- this.NotifyOfPropertyChange("DisableLibdvdNav");
+ this.removeUnderscores = value;
+ this.NotifyOfPropertyChange("RemoveUnderscores");
}
}
/// <summary>
- /// Gets or sets a value indicating whether disablePresetUpdateCheckNotification.
+ /// Gets or sets SelectedMp4Extension.
/// </summary>
- public bool DisablePresetUpdateCheckNotification
+ public int SelectedMp4Extension
{
get
{
- return this.disablePresetUpdateCheckNotification;
+ return this.selectedMp4Extension;
}
set
{
- this.disablePresetUpdateCheckNotification = value;
- this.NotifyOfPropertyChange("DisablePresetUpdateCheckNotification");
+ this.selectedMp4Extension = value;
+ this.NotifyOfPropertyChange("SelectedMp4Extension");
}
}
+ #endregion
+
+ #region Preview
/// <summary>
- /// Gets or sets a value indicating whether DisplayStatusMessagesTrayIcon.
+ /// Gets or sets VLCPath.
/// </summary>
- public bool DisplayStatusMessagesTrayIcon
+ public string VLCPath
{
get
{
- return this.displayStatusMessagesTrayIcon;
+ return this.vlcPath;
}
set
{
- this.displayStatusMessagesTrayIcon = value;
- this.NotifyOfPropertyChange("DisplayStatusMessagesTrayIcon");
+ this.vlcPath = value;
+ this.NotifyOfPropertyChange("VLCPath");
}
}
+ #endregion
+
+ #region Audio and Subtitles
/// <summary>
- /// Gets or sets a value indicating whether EnableGuiTooltips.
+ /// Gets or sets AvailableLanguages.
/// </summary>
- public bool EnableGuiTooltips
+ public BindingList<string> AvailableLanguages
{
get
{
- return this.enableGuiTooltips;
+ return this.availableLanguages;
}
set
{
- this.enableGuiTooltips = value;
- this.NotifyOfPropertyChange("EnableGuiTooltips");
+ this.availableLanguages = value;
+ this.NotifyOfPropertyChange("AvailableLanguages");
}
}
/// <summary>
- /// Gets or sets a value indicating whether EnableQueryEditor.
+ /// Gets or sets AddAudioModeOptions.
/// </summary>
- public bool EnableQueryEditor
+ public BindingList<string> AddAudioModeOptions
{
get
{
- return this.enableQueryEditor;
+ return this.addAudioModeOptions;
}
set
{
- this.enableQueryEditor = value;
- this.NotifyOfPropertyChange("EnableQueryEditor");
+ this.addAudioModeOptions = value;
+ this.NotifyOfPropertyChange("AddAudioModeOptions");
}
}
/// <summary>
- /// Gets or sets a value indicating whether GrowlAfterEncode.
+ /// Gets or sets a value indicating whether AddClosedCaptions.
/// </summary>
- public bool GrowlAfterEncode
+ public bool AddClosedCaptions
{
get
{
- return this.growlAfterEncode;
+ return this.addClosedCaptions;
}
set
{
- this.growlAfterEncode = value;
- this.NotifyOfPropertyChange("GrowlAfterEncode");
+ this.addClosedCaptions = value;
+ this.NotifyOfPropertyChange("AddClosedCaptions");
}
}
/// <summary>
- /// Gets or sets a value indicating whether GrowlAfterQueue.
+ /// Gets or sets a value indicating whether AddOnlyOneAudioTrackPerLanguage.
/// </summary>
- public bool GrowlAfterQueue
+ public bool AddOnlyOneAudioTrackPerLanguage
{
get
{
- return this.growlAfterQueue;
+ return this.addOnlyOneAudioTrackPerLanguage;
}
set
{
- this.growlAfterQueue = value;
- this.NotifyOfPropertyChange("GrowlAfterQueue");
+ this.addOnlyOneAudioTrackPerLanguage = value;
+ this.NotifyOfPropertyChange("AddOnlyOneAudioTrackPerLanguage");
}
}
/// <summary>
- /// Gets or sets LogDirectory.
+ /// Gets or sets AddSubtitleModeOptions.
/// </summary>
- public string LogDirectory
+ public BindingList<string> AddSubtitleModeOptions
{
get
{
- return this.logDirectory;
+ return this.addSubtitleModeOptions;
}
set
{
- this.logDirectory = value;
- this.NotifyOfPropertyChange("LogDirectory");
+ this.addSubtitleModeOptions = value;
+ this.NotifyOfPropertyChange("AddSubtitleModeOptions");
}
}
/// <summary>
- /// Gets or sets LogVerbosityOptions.
+ /// Gets or sets SelectedAddAudioMode.
/// </summary>
- public BindingList<int> LogVerbosityOptions
+ public int SelectedAddAudioMode
{
get
{
- return this.logVerbosityOptions;
+ return this.selectedAddAudioMode;
}
set
{
- this.logVerbosityOptions = value;
- this.NotifyOfPropertyChange("LogVerbosityOptions");
+ this.selectedAddAudioMode = value;
+ this.NotifyOfPropertyChange("SelectedAddAudioMode");
}
}
/// <summary>
- /// Gets or sets MinLength.
+ /// Gets or sets SelectedAddSubtitleMode.
/// </summary>
- public long MinLength
+ public int SelectedAddSubtitleMode
{
get
{
- return this.minLength;
+ return this.selectedAddSubtitleMode;
}
set
{
- this.minLength = value;
- this.NotifyOfPropertyChange("MinLength");
+ this.selectedAddSubtitleMode = value;
+ this.NotifyOfPropertyChange("SelectedAddSubtitleMode");
}
}
/// <summary>
- /// Gets or sets a value indicating whether MinimiseToTray.
+ /// Gets or sets preferredLanguages.
/// </summary>
- public bool MinimiseToTray
+ public BindingList<string> PreferredLanguages
{
get
{
- return this.minimiseToTray;
+ return this.preferredLanguages;
}
set
{
- this.minimiseToTray = value;
- this.NotifyOfPropertyChange("MinimiseToTray");
+ this.preferredLanguages = value;
+ this.NotifyOfPropertyChange("preferredLanguages");
}
}
/// <summary>
- /// Gets or sets Mp4ExtensionOptions.
+ /// Gets or sets SelectedLangauges.
/// </summary>
- public BindingList<string> Mp4ExtensionOptions
+ public BindingList<string> SelectedLangauges
{
get
{
- return this.mp4ExtensionOptions;
+ return this.selectedLangauges;
}
-
set
{
- this.mp4ExtensionOptions = value;
- this.NotifyOfPropertyChange("Mp4ExtensionOptions");
+ this.selectedLangauges = value;
+ this.NotifyOfPropertyChange("SelectedLangauges");
}
}
/// <summary>
- /// Gets or sets a value indicating whether PreventSleep.
+ /// Gets or sets SelectedPreferreedLangauge.
/// </summary>
- public bool PreventSleep
+ public string SelectedPreferredLangauge
{
get
{
- return this.preventSleep;
+ return this.selectedPreferredLangauge;
}
set
{
- this.preventSleep = value;
- this.NotifyOfPropertyChange("PreventSleep");
+ this.selectedPreferredLangauge = value;
+ this.NotifyOfPropertyChange("SelectedPreferreedLangauge");
}
}
+ #endregion
+
+ #region System and Logging
/// <summary>
- /// Gets or sets PreviewPicturesToScan.
+ /// Gets or sets a value indicating whether CopyLogToEncodeDirectory.
/// </summary>
- public BindingList<int> PreviewPicturesToScan
+ public bool CopyLogToEncodeDirectory
{
get
{
- return this.previewPicturesToScan;
+ return this.copyLogToEncodeDirectory;
}
set
{
- this.previewPicturesToScan = value;
- this.NotifyOfPropertyChange("PreviewPicturesToScan");
+ this.copyLogToEncodeDirectory = value;
+ this.NotifyOfPropertyChange("CopyLogToEncodeDirectory");
}
}
/// <summary>
- /// Gets or sets PriorityLevelOptions.
+ /// Gets or sets a value indicating whether CopyLogToSepcficedLocation.
/// </summary>
- public BindingList<string> PriorityLevelOptions
+ public bool CopyLogToSepcficedLocation
{
get
{
- return this.priorityLevelOptions;
+ return this.copyLogToSepcficedLocation;
}
set
{
- this.priorityLevelOptions = value;
- this.NotifyOfPropertyChange("PriorityLevelOptions");
+ this.copyLogToSepcficedLocation = value;
+ this.NotifyOfPropertyChange("CopyLogToSepcficedLocation");
}
}
/// <summary>
- /// Gets or sets a value indicating whether PromptOnDifferentQuery.
+ /// Gets or sets a value indicating whether ClearOldOlgs.
/// </summary>
- public bool PromptOnDifferentQuery
+ public bool ClearOldOlgs
{
get
{
- return this.promptOnDifferentQuery;
+ return this.clearOldOlgs;
}
set
{
- this.promptOnDifferentQuery = value;
- this.NotifyOfPropertyChange("PromptOnDifferentQuery");
+ this.clearOldOlgs = value;
+ this.NotifyOfPropertyChange("ClearOldOlgs");
}
}
/// <summary>
- /// Gets or sets a value indicating whether RemoveUnderscores.
+ /// Gets or sets LogDirectory.
/// </summary>
- public bool RemoveUnderscores
+ public string LogDirectory
{
get
{
- return this.removeUnderscores;
+ return this.logDirectory;
}
set
{
- this.removeUnderscores = value;
- this.NotifyOfPropertyChange("RemoveUnderscores");
+ this.logDirectory = value;
+ this.NotifyOfPropertyChange("LogDirectory");
}
}
/// <summary>
- /// Gets or sets SelectedAddAudioMode.
+ /// Gets or sets a value indicating whether PreventSleep.
/// </summary>
- public int SelectedAddAudioMode
+ public bool PreventSleep
{
get
{
- return this.selectedAddAudioMode;
+ return this.preventSleep;
}
set
{
- this.selectedAddAudioMode = value;
- this.NotifyOfPropertyChange("SelectedAddAudioMode");
+ this.preventSleep = value;
+ this.NotifyOfPropertyChange("PreventSleep");
}
}
/// <summary>
- /// Gets or sets SelectedAddSubtitleMode.
+ /// Gets or sets PriorityLevelOptions.
/// </summary>
- public int SelectedAddSubtitleMode
+ public BindingList<string> PriorityLevelOptions
{
get
{
- return this.selectedAddSubtitleMode;
+ return this.priorityLevelOptions;
}
set
{
- this.selectedAddSubtitleMode = value;
- this.NotifyOfPropertyChange("SelectedAddSubtitleMode");
+ this.priorityLevelOptions = value;
+ this.NotifyOfPropertyChange("PriorityLevelOptions");
}
}
@@ -946,225 +966,247 @@ namespace HandBrakeWPF.ViewModels }
/// <summary>
- /// Gets or sets SelectedMp4Extension.
+ /// Gets or sets SelectedPriority.
/// </summary>
- public int SelectedMp4Extension
+ public string SelectedPriority
{
get
{
- return this.selectedMp4Extension;
+ return this.selectedPriority;
}
set
{
- this.selectedMp4Extension = value;
- this.NotifyOfPropertyChange("SelectedMp4Extension");
+ this.selectedPriority = value;
+ this.NotifyOfPropertyChange("SelectedPriority");
}
}
+ #endregion
+
+ #region Advanced
/// <summary>
- /// Gets or sets preferredLanguages.
+ /// Gets or sets a value indicating whether EnableQueryEditor.
/// </summary>
- public BindingList<string> PreferredLanguages
+ public bool EnableQueryEditor
{
get
{
- return this.preferredLanguages;
+ return this.enableQueryEditor;
}
set
{
- this.preferredLanguages = value;
- this.NotifyOfPropertyChange("preferredLanguages");
+ this.enableQueryEditor = value;
+ this.NotifyOfPropertyChange("EnableQueryEditor");
}
}
/// <summary>
- /// Gets or sets SelectedPreferreedLangauge.
+ /// Gets or sets a value indicating whether PromptOnDifferentQuery.
/// </summary>
- public string SelectedPreferredLangauge
+ public bool PromptOnDifferentQuery
{
get
{
- return this.selectedPreferredLangauge;
+ return this.promptOnDifferentQuery;
}
set
{
- this.selectedPreferredLangauge = value;
- this.NotifyOfPropertyChange("SelectedPreferreedLangauge");
+ this.promptOnDifferentQuery = value;
+ this.NotifyOfPropertyChange("PromptOnDifferentQuery");
}
}
/// <summary>
- /// Gets or sets SelectedPreviewCount.
+ /// Gets or sets ConstantQualityGranularity.
/// </summary>
- public int SelectedPreviewCount
+ public BindingList<string> ConstantQualityGranularity
{
get
{
- return this.selectedPreviewCount;
+ return this.constantQualityGranularity;
}
set
{
- this.selectedPreviewCount = value;
- this.NotifyOfPropertyChange("SelectedPreviewCount");
+ this.constantQualityGranularity = value;
+ this.NotifyOfPropertyChange("ConstantQualityGranularity");
}
}
/// <summary>
- /// Gets or sets SelectedPriority.
+ /// Gets or sets a value indicating whether DisableLibdvdNav.
/// </summary>
- public string SelectedPriority
+ public bool DisableLibdvdNav
{
get
{
- return this.selectedPriority;
+ return this.disableLibdvdNav;
}
set
{
- this.selectedPriority = value;
- this.NotifyOfPropertyChange("SelectedPriority");
+ this.disableLibdvdNav = value;
+ this.NotifyOfPropertyChange("DisableLibdvdNav");
}
}
/// <summary>
- /// Gets or sets SelectedVerbosity.
+ /// Gets or sets a value indicating whether disablePresetUpdateCheckNotification.
/// </summary>
- public int SelectedVerbosity
+ public bool DisablePresetUpdateCheckNotification
{
get
{
- return this.selectedVerbosity;
+ return this.disablePresetUpdateCheckNotification;
}
set
{
- this.selectedVerbosity = value;
- this.NotifyOfPropertyChange("SelectedVerbosity");
+ this.disablePresetUpdateCheckNotification = value;
+ this.NotifyOfPropertyChange("DisablePresetUpdateCheckNotification");
}
}
/// <summary>
- /// Gets or sets a value indicating whether SendFileAfterEncode.
+ /// Gets or sets a value indicating whether DisplayStatusMessagesTrayIcon.
/// </summary>
- public bool SendFileAfterEncode
+ public bool DisplayStatusMessagesTrayIcon
{
get
{
- return this.sendFileAfterEncode;
+ return this.displayStatusMessagesTrayIcon;
}
set
{
- this.sendFileAfterEncode = value;
- this.NotifyOfPropertyChange("SendFileAfterEncode");
+ this.displayStatusMessagesTrayIcon = value;
+ this.NotifyOfPropertyChange("DisplayStatusMessagesTrayIcon");
}
}
/// <summary>
- /// Gets or sets SendFileTo.
+ /// Gets or sets LogVerbosityOptions.
/// </summary>
- public string SendFileTo
+ public BindingList<int> LogVerbosityOptions
{
get
{
- return this.sendFileTo;
+ return this.logVerbosityOptions;
}
set
{
- this.sendFileTo = value;
- this.NotifyOfPropertyChange("SendFileTo");
+ this.logVerbosityOptions = value;
+ this.NotifyOfPropertyChange("LogVerbosityOptions");
}
}
/// <summary>
- /// Gets or sets a value indicating whether ShowCliWindow.
+ /// Gets or sets MinLength.
/// </summary>
- public bool ShowCliWindow
+ public long MinLength
{
get
{
- return this.showCliWindow;
+ return this.minLength;
}
set
{
- this.showCliWindow = value;
- this.NotifyOfPropertyChange("ShowCliWindow");
+ this.minLength = value;
+ this.NotifyOfPropertyChange("MinLength");
}
}
/// <summary>
- /// Gets or sets SelectedLangauges.
+ /// Gets or sets a value indicating whether MinimiseToTray.
/// </summary>
- public BindingList<string> SelectedLangauges
+ public bool MinimiseToTray
{
get
{
- return this.selectedLangauges;
+ return this.minimiseToTray;
}
+
set
{
- this.selectedLangauges = value;
- this.NotifyOfPropertyChange("SelectedLangauges");
+ this.minimiseToTray = value;
+ this.NotifyOfPropertyChange("MinimiseToTray");
}
}
/// <summary>
- /// Gets or sets VLCPath.
+ /// Gets or sets PreviewPicturesToScan.
/// </summary>
- public string VLCPath
+ public BindingList<int> PreviewPicturesToScan
{
get
{
- return this.vlcPath;
+ return this.previewPicturesToScan;
}
set
{
- this.vlcPath = value;
- this.NotifyOfPropertyChange("VLCPath");
+ this.previewPicturesToScan = value;
+ this.NotifyOfPropertyChange("PreviewPicturesToScan");
}
}
/// <summary>
- /// Gets or sets WhenDone.
+ /// Gets or sets SelectedPreviewCount.
/// </summary>
- public string WhenDone
+ public int SelectedPreviewCount
{
get
{
- return this.whenDone;
+ return this.selectedPreviewCount;
}
set
{
- this.whenDone = value;
- this.NotifyOfPropertyChange("WhenDone");
+ this.selectedPreviewCount = value;
+ this.NotifyOfPropertyChange("SelectedPreviewCount");
}
}
/// <summary>
- /// Gets or sets WhenDoneOptions.
+ /// Gets or sets SelectedVerbosity.
/// </summary>
- public BindingList<string> WhenDoneOptions
+ public int SelectedVerbosity
{
get
{
- return this.whenDoneOptions;
+ return this.selectedVerbosity;
}
set
{
- this.whenDoneOptions = value;
- this.NotifyOfPropertyChange("WhenDoneOptions");
+ this.selectedVerbosity = value;
+ this.NotifyOfPropertyChange("SelectedVerbosity");
}
}
+ /// <summary>
+ /// Gets or sets a value indicating whether ShowCliWindow.
+ /// </summary>
+ public bool ShowCliWindow
+ {
+ get
+ {
+ return this.showCliWindow;
+ }
+
+ set
+ {
+ this.showCliWindow = value;
+ this.NotifyOfPropertyChange("ShowCliWindow");
+ }
+ }
+ #endregion
+
#endregion
#region Public Methods
@@ -1212,27 +1254,25 @@ namespace HandBrakeWPF.ViewModels this.growlAfterEncode = userSettingService.GetUserSetting<bool>(ASUserSettingConstants.GrowlEncode);
this.growlAfterQueue = userSettingService.GetUserSetting<bool>(ASUserSettingConstants.GrowlQueue);
- this.SendFileAfterEncode = this.userSettingService.GetUserSetting<bool>(ASUserSettingConstants.SendFile);
- this.sendFileTo = Path.GetFileNameWithoutExtension(this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.SendFileTo));
- this.arguments = this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.SendFileToArgs);
+ this.sendFileAfterEncode = this.userSettingService.GetUserSetting<bool>(ASUserSettingConstants.SendFile);
+ this.sendFileTo = Path.GetFileNameWithoutExtension(this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.SendFileTo)) ?? string.Empty;
+ this.sendFileToPath = this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.SendFileTo) ?? string.Empty;
+ this.arguments = this.userSettingService.GetUserSetting<string>(ASUserSettingConstants.SendFileToArgs) ?? string.Empty;
// #############################
// Output Settings
// #############################
// Enable auto naming feature.)
- if (this.userSettingService.GetUserSetting<bool>(UserSettingConstants.AutoNaming))
- {
- this.automaticallyNameFiles = true;
- }
+ this.automaticallyNameFiles = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.AutoNaming);
// Store the auto name path
- this.autoNameDefaultPath = this.userSettingService.GetUserSetting<string>(UserSettingConstants.AutoNamePath);
+ this.autoNameDefaultPath = this.userSettingService.GetUserSetting<string>(UserSettingConstants.AutoNamePath) ?? string.Empty;
if (string.IsNullOrEmpty(this.autoNameDefaultPath))
this.autoNameDefaultPath = "Click 'Browse' to set the default location";
// Store auto name format
- this.autonameFormat = this.userSettingService.GetUserSetting<string>(UserSettingConstants.AutoNameFormat);
+ this.autonameFormat = this.userSettingService.GetUserSetting<string>(UserSettingConstants.AutoNameFormat) ?? string.Empty;
// Use iPod/iTunes friendly .m4v extension for MP4 files.
this.mp4ExtensionOptions.Add("Automatic");
@@ -1251,7 +1291,7 @@ namespace HandBrakeWPF.ViewModels // #############################
// VLC Path
- this.vlcPath = this.userSettingService.GetUserSetting<string>(UserSettingConstants.VLC_Path);
+ this.vlcPath = this.userSettingService.GetUserSetting<string>(UserSettingConstants.VLC_Path) ?? string.Empty;
// #############################
// Audio and Subtitles Tab
@@ -1279,7 +1319,7 @@ namespace HandBrakeWPF.ViewModels }
}
- this.selectedPreferredLangauge = this.userSettingService.GetUserSetting<string>(UserSettingConstants.NativeLanguage);
+ this.selectedPreferredLangauge = this.userSettingService.GetUserSetting<string>(UserSettingConstants.NativeLanguage) ?? string.Empty;
this.AddAudioModeOptions.Add("None");
this.AddAudioModeOptions.Add("All Remaining Tracks");
@@ -1324,7 +1364,7 @@ namespace HandBrakeWPF.ViewModels this.copyLogToSepcficedLocation = userSettingService.GetUserSetting<bool>(ASUserSettingConstants.SaveLogToCopyDirectory);
// The saved log path
- this.logDirectory = userSettingService.GetUserSetting<string>(ASUserSettingConstants.SaveLogCopyDirectory);
+ this.logDirectory = userSettingService.GetUserSetting<string>(ASUserSettingConstants.SaveLogCopyDirectory) ?? string.Empty;
this.clearOldOlgs = this.userSettingService.GetUserSetting<bool>(UserSettingConstants.ClearOldLogs);
@@ -1360,8 +1400,6 @@ namespace HandBrakeWPF.ViewModels // Use Experimental dvdnav
this.disableLibdvdNav = userSettingService.GetUserSetting<bool>(ASUserSettingConstants.DisableLibDvdNav);
-
- this.isLoading = false;
}
/// <summary>
@@ -1369,9 +1407,181 @@ namespace HandBrakeWPF.ViewModels /// </summary>
public void Close()
{
+ this.Save();
this.TryClose();
}
+ /// <summary>
+ /// Browse - Send File To
+ /// </summary>
+ public void BrowseSendFileTo()
+ {
+ VistaOpenFileDialog dialog = new VistaOpenFileDialog { Filter = "All files (*.*)|*.*" };
+ dialog.ShowDialog();
+ this.SendFileTo = Path.GetFileNameWithoutExtension(dialog.FileName);
+ this.sendFileToPath = dialog.FileName;
+ }
+
+ /// <summary>
+ /// Browse Auto Name Path
+ /// </summary>
+ public void BrowseAutoNamePath()
+ {
+ VistaFolderBrowserDialog dialog = new VistaFolderBrowserDialog { Description = "Please select a folder.", UseDescriptionForTitle = true };
+ dialog.ShowDialog();
+ this.AutoNameDefaultPath = dialog.SelectedPath;
+ }
+
+ /// <summary>
+ /// Browse VLC Path
+ /// </summary>
+ public void BrowseVlcPath()
+ {
+ VistaOpenFileDialog dialog = new VistaOpenFileDialog { Filter = "All files (*.exe)|*.exe" };
+ dialog.ShowDialog();
+ this.VLCPath = dialog.FileName;
+ }
+
+ /// <summary>
+ /// Audio List Move Left
+ /// </summary>
+ public void LanguageMoveLeft()
+ {
+ // TODO
+ }
+
+ /// <summary>
+ /// Audio List Move Right
+ /// </summary>
+ public void LanguageMoveRight()
+ {
+ // TODO
+ }
+
+ /// <summary>
+ /// Audio List Clear all selected languages
+ /// </summary>
+ public void LanguageClearAll()
+ {
+ this.SelectedLangauges.Clear();
+ }
+
+ /// <summary>
+ /// Audio List Language Move UP
+ /// </summary>
+ public void LanguageMoveUp()
+ {
+ // TODO
+ }
+
+ /// <summary>
+ /// Audio List Language Move Down
+ /// </summary>
+ public void LanguageMoveDown()
+ {
+ // TODO
+ }
+
+ /// <summary>
+ /// Browse - Log Path
+ /// </summary>
+ public void BrowseLogPath()
+ {
+ VistaFolderBrowserDialog dialog = new VistaFolderBrowserDialog { Description = "Please select a folder.", UseDescriptionForTitle = true };
+ dialog.ShowDialog();
+ this.LogDirectory = dialog.SelectedPath;
+ }
+
+ /// <summary>
+ /// View the Default Log Directory for HandBrake
+ /// </summary>
+ public void ViewLogDirectory()
+ {
+ string logDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\logs";
+ string windir = Environment.GetEnvironmentVariable("WINDIR");
+ Process prc = new Process { StartInfo = { FileName = windir + @"\explorer.exe", Arguments = logDir } };
+ prc.Start();
+ }
+
+ /// <summary>
+ /// Clear HandBrakes log directory.
+ /// </summary>
+ public void ClearLogHistory()
+ {
+ MessageBoxResult result = MessageBox.Show("Are you sure you wish to clear the log file directory?", "Clear Logs",
+ MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
+ if (result == MessageBoxResult.Yes)
+ {
+ GeneralUtilities.ClearLogFiles(0);
+ MessageBox.Show("HandBrake's Log file directory has been cleared!", "Notice", MessageBoxButton.OK, MessageBoxImage.Information);
+ }
+ }
+
#endregion
+
+ /// <summary>
+ /// Save the settings selected
+ /// </summary>
+ private void Save()
+ {
+ /* General */
+ this.userSettingService.SetUserSetting(UserSettingConstants.UpdateStatus, this.CheckForUpdates);
+ this.userSettingService.SetUserSetting(UserSettingConstants.DaysBetweenUpdateCheck, this.CheckForUpdatesFrequency);
+ this.userSettingService.SetUserSetting(UserSettingConstants.TooltipEnable, this.EnableGuiTooltips);
+ this.userSettingService.SetUserSetting(ASUserSettingConstants.WhenCompleteAction, this.WhenDone);
+ this.userSettingService.SetUserSetting(ASUserSettingConstants.GrowlQueue, this.GrowlAfterQueue);
+ this.userSettingService.SetUserSetting(ASUserSettingConstants.GrowlEncode, this.GrowlAfterEncode);
+ this.userSettingService.SetUserSetting(ASUserSettingConstants.SendFileTo, this.SendFileToPath);
+ this.userSettingService.SetUserSetting(ASUserSettingConstants.SendFile, this.SendFileAfterEncode);
+ this.userSettingService.SetUserSetting(ASUserSettingConstants.SendFileToArgs, this.Arguments);
+
+ /* Output Files */
+ this.userSettingService.SetUserSetting(UserSettingConstants.AutoNaming, this.AutomaticallyNameFiles);
+ this.userSettingService.SetUserSetting(UserSettingConstants.AutoNameFormat, this.AutonameFormat);
+ this.userSettingService.SetUserSetting(UserSettingConstants.AutoNamePath, this.AutoNameDefaultPath);
+ this.userSettingService.SetUserSetting(UserSettingConstants.UseM4v, this.SelectedMp4Extension);
+ this.userSettingService.SetUserSetting(UserSettingConstants.AutoNameRemoveUnderscore, this.RemoveUnderscores);
+ this.userSettingService.SetUserSetting(UserSettingConstants.AutoNameTitleCase, this.ChangeToTitleCase);
+
+ /* Previews */
+ this.userSettingService.SetUserSetting(UserSettingConstants.VLC_Path, this.VLCPath);
+
+ /* Audio and Subtitles */
+ this.userSettingService.SetUserSetting(UserSettingConstants.NativeLanguage, this.SelectedPreferredLangauge);
+ StringCollection collection = new StringCollection();
+ collection.AddRange(this.SelectedLangauges.ToArray());
+ this.userSettingService.SetUserSetting(UserSettingConstants.SelectedLanguages, collection);
+ this.userSettingService.SetUserSetting(UserSettingConstants.AddOnlyOneAudioPerLanguage, this.AddOnlyOneAudioTrackPerLanguage);
+ this.userSettingService.SetUserSetting(UserSettingConstants.UseClosedCaption, this.AddClosedCaptions);
+ this.userSettingService.SetUserSetting(UserSettingConstants.DubModeAudio, this.SelectedAddAudioMode);
+ this.userSettingService.SetUserSetting(UserSettingConstants.DubModeSubtitle, this.SelectedAddSubtitleMode);
+
+ /* System and Logging */
+ userSettingService.SetUserSetting(ASUserSettingConstants.ProcessPriority, this.SelectedPriority);
+ userSettingService.SetUserSetting(ASUserSettingConstants.PreventSleep, this.PreventSleep);
+ userSettingService.SetUserSetting(ASUserSettingConstants.Verbosity, this.SelectedVerbosity);
+ userSettingService.SetUserSetting(ASUserSettingConstants.SaveLogWithVideo, this.CopyLogToEncodeDirectory);
+ userSettingService.SetUserSetting(ASUserSettingConstants.SaveLogToCopyDirectory, this.CopyLogToSepcficedLocation);
+ userSettingService.SetUserSetting(ASUserSettingConstants.SaveLogCopyDirectory, this.LogDirectory);
+ userSettingService.SetUserSetting(UserSettingConstants.ClearOldLogs, this.ClearOldOlgs);
+
+ /* Advanced */
+ userSettingService.SetUserSetting(UserSettingConstants.MainWindowMinimize, this.MinimiseToTray);
+ userSettingService.SetUserSetting(UserSettingConstants.TrayIconAlerts, this.DisplayStatusMessagesTrayIcon);
+ userSettingService.SetUserSetting(UserSettingConstants.QueryEditorTab, this.EnableQueryEditor);
+ userSettingService.SetUserSetting(UserSettingConstants.PromptOnUnmatchingQueries, this.PromptOnDifferentQuery);
+ userSettingService.SetUserSetting(UserSettingConstants.PresetNotification, this.DisablePresetUpdateCheckNotification);
+ userSettingService.SetUserSetting(ASUserSettingConstants.ShowCLI, this.ShowCliWindow);
+ userSettingService.SetUserSetting(UserSettingConstants.PreviewScanCount, this.SelectedPreviewCount);
+ userSettingService.SetUserSetting(ASUserSettingConstants.X264Step, double.Parse(this.SelectedGranulairty));
+
+ int value;
+ if (int.TryParse(this.MinLength.ToString(), out value))
+ {
+ this.userSettingService.SetUserSetting(ASUserSettingConstants.MinScanDuration, value);
+ }
+
+ userSettingService.SetUserSetting(ASUserSettingConstants.DisableLibDvdNav, this.DisableLibdvdNav);
+ }
}
}
\ No newline at end of file diff --git a/win/CS/HandBrakeWPF/Views/LogView.xaml b/win/CS/HandBrakeWPF/Views/LogView.xaml new file mode 100644 index 000000000..ee6656788 --- /dev/null +++ b/win/CS/HandBrakeWPF/Views/LogView.xaml @@ -0,0 +1,8 @@ +<Window x:Class="HandBrakeWPF.Views.LogView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ Title="LogView" Height="300" Width="300">
+ <Grid>
+
+ </Grid>
+</Window>
diff --git a/win/CS/HandBrakeWPF/Views/LogView.xaml.cs b/win/CS/HandBrakeWPF/Views/LogView.xaml.cs new file mode 100644 index 000000000..375cbed43 --- /dev/null +++ b/win/CS/HandBrakeWPF/Views/LogView.xaml.cs @@ -0,0 +1,26 @@ +using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace HandBrakeWPF.Views
+{
+ /// <summary>
+ /// Interaction logic for LogView.xaml
+ /// </summary>
+ public partial class LogView : Window
+ {
+ public LogView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/win/CS/HandBrakeWPF/Views/MainView.xaml b/win/CS/HandBrakeWPF/Views/MainView.xaml index cdb63a7df..6b0e9ca66 100644 --- a/win/CS/HandBrakeWPF/Views/MainView.xaml +++ b/win/CS/HandBrakeWPF/Views/MainView.xaml @@ -4,6 +4,16 @@ xmlns:Micro="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro" xmlns:Controls="clr-namespace:HandBrakeWPF.Views.Controls"
Title="{Data:Binding Path=WindowTitle}" Height="655" Width="1015" FontSize="11">
+ <Window.Resources>
+ <Style TargetType="Button">
+ <Setter Property="Foreground" Value="DarkOrange" />
+ <Setter Property="FontWeight" Value="Bold" />
+ <Setter Property="Padding" Value="5,1" />
+ <Setter Property="FontSize" Value="11.5" />
+ <Setter Property="VerticalAlignment" Value="Center" />
+ </Style>
+ </Window.Resources>
+
<Grid>
<StackPanel Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<!-- Menu and Taskbar-->
diff --git a/win/CS/HandBrakeWPF/Views/OptionsView.xaml b/win/CS/HandBrakeWPF/Views/OptionsView.xaml index 1a4c50ef7..8f3d155bd 100644 --- a/win/CS/HandBrakeWPF/Views/OptionsView.xaml +++ b/win/CS/HandBrakeWPF/Views/OptionsView.xaml @@ -1,37 +1,30 @@ <Window x:Class="HandBrakeWPF.Views.OptionsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.caliburnproject.org"
- Title="OptionsView" MinWidth="620" MinHeight="540" Width="620" Height="520">
+ Title="OptionsView" MinWidth="620" MinHeight="550" Width="620" Height="550">
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Foreground" Value="DarkOrange" />
<Setter Property="FontWeight" Value="Bold" />
- <Setter Property="Padding" Value="5,1" />
- <Setter Property="FontSize" Value="12" />
- <Setter Property="VerticalAlignment" Value="Center" />
- </Style>
-
- <Style TargetType="ComboBox">
+ <Setter Property="Padding" Value="5,0.5" />
+ <Setter Property="FontSize" Value="11.5" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
- <Style TargetType="CheckBox">
- <Setter Property="Margin" Value="0,0,5,5" />
- </Style>
-
+
+
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="0,0,5,0" />
</Style>
- <Style TargetType="TextBox">
- <Setter Property="VerticalAlignment" Value="Center" />
- <Setter Property="Margin" Value="0,0,10,5" />
+ <Style TargetType="CheckBox">
+ <Setter Property="Margin" Value="0,0,0,5" />
</Style>
</Window.Resources>
- <StackPanel Orientation="Vertical" Background="LightGray">
+ <StackPanel Orientation="Vertical" Background="#FFF1F0EF">
<!-- Header -->
<StackPanel Orientation="Horizontal" Background="White" Height="50" >
<Image Source="Images/Preferences.png" Margin="10,0,5,0" Width="32" Height="32" VerticalAlignment="Center" />
@@ -42,7 +35,7 @@ </StackPanel>
<!-- Options Panel-->
- <TabControl Margin="10,10,10,10" Height="400">
+ <TabControl Margin="10,10,10,10" Height="410">
<TabItem Header="General">
<StackPanel Orientation="Vertical">
<Grid Margin="10,10,0,10">
@@ -55,7 +48,7 @@ <StackPanel Orientation="Vertical" Grid.Column="1">
<CheckBox Content="Check for Updates" IsChecked="{Binding CheckForUpdates}" />
- <ComboBox Name="checkForUpdateFrequency" ItemsSource="{Binding CheckForUpdatesFrequencies}" SelectedIndex="{Binding CheckForUpdatesFrequency}" Margin="25,0,0,0" HorizontalAlignment="Left" Width="120"></ComboBox>
+ <ComboBox Name="checkForUpdateFrequency" ItemsSource="{Binding CheckForUpdatesFrequencies}" SelectedIndex="{Binding CheckForUpdatesFrequency}" Margin="25,0,0,5" HorizontalAlignment="Left" Width="120"></ComboBox>
<CheckBox Content="Enable Tooltips" IsChecked="{Binding EnableGuiTooltips}" />
</StackPanel>
@@ -73,18 +66,18 @@ <ComboBox Name="whenDone" ItemsSource="{Binding WhenDoneOptions}" SelectedItem="{Binding WhenDone}" Width="120" HorizontalAlignment="Left"></ComboBox>
<StackPanel Orientation="Horizontal" Margin="0,5,0,0">
- <CheckBox Content="Growl after Queue Completes" IsChecked="{Binding GrowlAfterEncode}"/>
+ <CheckBox Content="Growl after Queue Completes" IsChecked="{Binding GrowlAfterEncode}" Margin="0,0,5,0"/>
<CheckBox Content="Growl after Encode Completes" IsChecked="{Binding GrowlAfterQueue}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5,0,0">
- <CheckBox Content="Send file to:" IsChecked="{Binding SendFileAfterEncode}" />
- <TextBlock Margin="5,0,0,0" VerticalAlignment="Center" Text="{Binding SendFileTo}" />
- <Button Content="Browse" Width="55"/>
+ <CheckBox Content="Send file to:" VerticalAlignment="Center" IsChecked="{Binding SendFileAfterEncode}" />
+ <TextBlock Margin="5,0,5,5" VerticalAlignment="Center" Text="{Binding SendFileTo}" />
+ <Button Content="Browse" cal:Message.Attach="[Event Click] = [Action BrowseSendFileTo]" Width="55"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5,0,0">
- <TextBlock Margin="25,0,0,0" Text="Arguments:" />
+ <TextBlock VerticalAlignment="Center" Margin="25,0,5,0" Text="Arguments:" />
<TextBox Name="SendToArguments" Text="{Binding Arguments}" Width="180" />
</StackPanel>
@@ -107,25 +100,25 @@ <CheckBox Content="Automatically name output files" IsChecked="{Binding AutomaticallyNameFiles}" />
<StackPanel Orientation="Horizontal" Margin="0,5,0,0">
- <TextBlock Text="Arguments: " />
+ <TextBlock VerticalAlignment="Center" Text="Arguments: " />
<TextBox Name="autoNameOutputPath" Text="{Binding AutoNameDefaultPath}" Width="180" />
- <Button Content="Browse" Width="55"/>
+ <Button Content="Browse" Margin="5,0,0,0" cal:Message.Attach="[Event Click] = [Action BrowseAutoNamePath]" Width="55"/>
</StackPanel>
<TextBlock Text="Available Options: {source_path} or {source_folder_name} (Not Both)" />
- <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
- <TextBlock Text="Format:" />
+ <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
+ <TextBlock VerticalAlignment="Center" Text="Format:" />
<TextBox Name="autoNameFormat" Text="{Binding AutonameFormat}" Width="180" />
</StackPanel>
<TextBlock Text="Available Options: {source} {title} {chapters} {date}" />
- <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
+ <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
<CheckBox Content="Remove underscores from name" IsChecked="{Binding RemoveUnderscores}"/>
<CheckBox Content="Change case to Title Case" IsChecked="{Binding ChangeToTitleCase}" Margin="5,0,0,0" />
</StackPanel>
- <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
- <TextBlock Text="MP4 File Extension:" />
+ <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
+ <TextBlock VerticalAlignment="Center" Text="MP4 File Extension:" />
<ComboBox Name="mp4FileExtension" Width="120" ItemsSource="{Binding Mp4ExtensionOptions}" SelectedIndex="{Binding SelectedMp4Extension}" HorizontalAlignment="Left"></ComboBox>
</StackPanel>
</StackPanel>
@@ -146,9 +139,9 @@ <StackPanel Orientation="Vertical" Grid.Column="1">
<StackPanel Orientation="Horizontal">
- <TextBlock Text="Path:" />
+ <TextBlock VerticalAlignment="Center" Text="Path:" />
<TextBox Name="vlcPath" Text="{Binding VLCPath}" Width="180" />
- <Button Content="Browse" Width="55"/>
+ <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." />
@@ -159,8 +152,10 @@ <TabItem Header="Audio and Subtitles">
<StackPanel Orientation="Vertical">
- <TextBlock Text="Automatic Audio and Subtitle Selection" Grid.Column="0" FontWeight="Bold"/>
- <Grid Margin="10,10,0,10">
+
+ <TextBlock Text="Automatic Selection" Grid.Column="0" Margin="10,10,0,0" FontWeight="Bold"/>
+
+ <Grid Margin="10,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="140" />
<ColumnDefinition Width="*" />
@@ -168,12 +163,12 @@ <TextBlock Text="Preferred Language:" Grid.Column="0"/>
<StackPanel Orientation="Horizontal" Grid.Column="1">
- <ComboBox Name="primaryAudioLanguage" ItemsSource="{Binding PreferredLanguages}" SelectedItem="{Binding SelectedPreferredLangauge}" Width="120" />
- <TextBlock Text="Primary Audio Langauge" FontSize="10" />
+ <ComboBox Name="primaryAudioLanguage" VerticalAlignment="Center" ItemsSource="{Binding PreferredLanguages}" SelectedItem="{Binding SelectedPreferredLangauge}" Width="120" />
+ <TextBlock VerticalAlignment="Center" Text="Primary Audio Langauge" FontSize="10" />
</StackPanel>
</Grid>
- <Grid Margin="10,10,0,10">
+ <Grid Margin="10,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
@@ -194,40 +189,44 @@ <ListBox Name="availableLanguages" ItemsSource="{Binding AvailableLanguages}" SelectionMode="Multiple" Height="140"></ListBox>
</StackPanel>
- <StackPanel Orientation="Vertical" Grid.Column="1" Margin="10,0,10,0">
- <Button Content="Move Left" VerticalAlignment="Center" Width="60"></Button>
- <Button Content="Move Right" VerticalAlignment="Center" Width="60"></Button>
- <Button Content="Clear" VerticalAlignment="Center" Width="60"></Button>
- </StackPanel>
+ <DockPanel Grid.Column="1" Margin="10,0,10,0">
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center">
+ <Button Content="Move Left" VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageMoveLeft]" Width="60" />
+ <Button Content="Move Right" VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageMoveRight]" Width="60" />
+ <Button Content="Clear" VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageClearAll]" Width="60" />
+ </StackPanel>
+ </DockPanel>
<StackPanel Orientation="Vertical" Grid.Column="2">
<TextBlock Text="Selected Langauges" Margin="0,0,0,5"/>
<ListBox Name="selectedLangauges" ItemsSource="{Binding SelectedLangauges}" SelectionMode="Multiple" Height="140" />
</StackPanel>
- <StackPanel Orientation="Vertical" Grid.Column="3" Margin="10,0,10,0">
- <Button Content="Move Up" VerticalAlignment="Center" Width="60"></Button>
- <Button Content="Move Down" VerticalAlignment="Center" Width="60"></Button>
- </StackPanel>
+ <DockPanel Grid.Column="3" Margin="10,0,10,0">
+ <StackPanel Orientation="Vertical" VerticalAlignment="Center">
+ <Button Content="Move Up" VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageMoveUp]" Width="60" />
+ <Button Content="Move Down" VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageMoveDown]" Width="60" />
+ </StackPanel>
+ </DockPanel>
</Grid>
</StackPanel>
</Grid>
- <GroupBox Header="Add Additional Tracks" VerticalAlignment="Top" >
+ <GroupBox Header="Add Additional Tracks" >
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
- <TextBlock Text="Audio:" Margin="0,0,10,0" Width="100" />
+ <TextBlock Text="Audio:" VerticalAlignment="Center" Margin="15,0,5,0" Width="100" />
<ComboBox Name="autoAudioMode" ItemsSource="{Binding AddAudioModeOptions}" SelectedIndex="{Binding SelectedAddAudioMode}" Width="120" Margin="0,0,5,0" />
- <CheckBox Content="Add only one audio track per langauge" IsChecked="{Binding AddOnlyOneAudioTrackPerLanguage}" />
+ <CheckBox Content="Add only one audio track per langauge" VerticalAlignment="Center" IsChecked="{Binding AddOnlyOneAudioTrackPerLanguage}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5,0,0">
- <TextBlock Text="Subtitle:" Margin="0,0,10,0" Width="100" />
+ <TextBlock Text="Subtitle:" VerticalAlignment="Center" Margin="15,0,5,0" Width="100" />
<ComboBox Name="autoSubtitleMode" ItemsSource="{Binding AddSubtitleModeOptions}" SelectedIndex="{Binding SelectedAddSubtitleMode}" Width="120" Margin="0,0,5,0" />
</StackPanel>
- <CheckBox Content="Add Closed Captions when available" IsChecked="{Binding AddClosedCaptions}"/>
+ <CheckBox Content="Add Closed Captions when available" Margin="120,5,0,0" IsChecked="{Binding AddClosedCaptions}"/>
</StackPanel>
</GroupBox>
@@ -245,7 +244,7 @@ <TextBlock Text="CLI:" Grid.Column="0" FontWeight="Bold"/>
<StackPanel Orientation="Horizontal" Grid.Column="1">
- <TextBlock Text="Priority Level:" />
+ <TextBlock Text="Priority Level:" VerticalAlignment="Center" />
<ComboBox Name="processPriorityLevel" ItemsSource="{Binding PriorityLevelOptions}" SelectedItem="{Binding SelectedPriority}" Width="120" />
</StackPanel>
</Grid>
@@ -271,20 +270,20 @@ <StackPanel Orientation="Vertical" Grid.Column="1">
<StackPanel Orientation="Horizontal" Grid.Column="1">
- <TextBlock Text="Log Verbosity Level:" />
+ <TextBlock Text="Log Verbosity Level:" VerticalAlignment="Center" />
<ComboBox Name="logVerbosityLevel" ItemsSource="{Binding LogVerbosityOptions}" SelectedItem="{Binding SelectedVerbosity}" Width="120" />
</StackPanel>
<CheckBox Content="Put a copy of individual encode logs in the same location as the encoded video" IsChecked="{Binding CopyLogToEncodeDirectory}" />
<CheckBox Content="Put a copy of individual encode logs in a specified location: " IsChecked="{Binding CopyLogToSepcficedLocation}" />
- <StackPanel Orientation="Horizontal" Grid.Column="1">
- <TextBlock Text="Log Path:" />
+ <StackPanel Orientation="Horizontal" Margin="0,10,0,0" Grid.Column="1">
+ <TextBlock Text="Log Path:" VerticalAlignment="Center" />
<TextBox Width="120" Text="{Binding LogDirectory}" />
- <Button Content="Browse" />
+ <Button Content="Browse" Margin="5,0,0,0" cal:Message.Attach="[Event Click] = [Action BrowseLogPath]" />
</StackPanel>
- <StackPanel Orientation="Horizontal" Grid.Column="1">
- <Button Content="View Log Directory" Margin="0,0,5,0" />
- <Button Content="Clear Log History" />
+ <StackPanel Orientation="Horizontal" Margin="0,10,0,0" Grid.Column="1">
+ <Button Content="View Log Directory" cal:Message.Attach="[Event Click] = [Action ViewLogDirectory]" Margin="0,0,5,0" />
+ <Button Content="Clear Log History" cal:Message.Attach="[Event Click] = [Action ClearLogHistory]" />
</StackPanel>
<CheckBox Content="Clear Log files older than 30 days " Margin="0,5,0,0" IsChecked="{Binding ClearOldOlgs}" />
@@ -310,12 +309,12 @@ <CheckBox Content="Prompt when a manual query does not match GUI settings" Margin="10,0,0,5" IsChecked="{Binding PromptOnDifferentQuery}" />
<CheckBox Content="Disable built-in preset update notification" IsChecked="{Binding DisablePresetUpdateCheckNotification}" />
<CheckBox Content="Show CLI window (Allows you to cleanly exit encode with ctrl-c)" IsChecked="{Binding ShowCliWindow}" />
- <StackPanel Orientation="Horizontal">
- <TextBlock Text="Number of picture previews to scan:" Width="210" />
+ <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
+ <TextBlock Text="Number of picture previews to scan:" VerticalAlignment="Center" Width="250" />
<ComboBox Name="numberOfPreviews" ItemsSource="{Binding PreviewPicturesToScan}" SelectedItem="{Binding SelectedPreviewCount}" Width="120" />
</StackPanel>
- <StackPanel Orientation="Horizontal">
- <TextBlock Text="Minimum length of title to scan (seconds):" Width="210" />
+ <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
+ <TextBlock Text="Minimum length of title to scan (seconds):" VerticalAlignment="Center" Width="250" />
<TextBox Name="MinTitleLength" Text="{Binding MinLength}" Width="120"/>
<!-- Find a control for this-->
</StackPanel>
@@ -323,19 +322,19 @@ </StackPanel>
</Grid>
- <Grid Margin="10,10,0,10">
+ <Grid Margin="10,0,0,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="x264:" Grid.Column="0" FontWeight="Bold"/>
<StackPanel Orientation="Horizontal" Grid.Column="1">
- <TextBlock Text="Constant quality fractional granularity:" Width="210" />
+ <TextBlock Text="Constant quality fractional granularity:" VerticalAlignment="Center" Width="250" />
<ComboBox Name="x264Granularity" ItemsSource="{Binding ConstantQualityGranularity}" SelectedItem="{Binding SelectedGranulairty}" Width="120"/>
</StackPanel>
</Grid>
- <Grid Margin="10,10,0,10">
+ <Grid Margin="10,0,0,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
@@ -353,7 +352,7 @@ </TabControl>
<Button Content="Close" IsDefault="True" cal:Message.Attach="[Event Click] = [Action Close]"
- HorizontalAlignment="Right" Padding="10,2" Margin="0,0,10,10" />
+ HorizontalAlignment="Right" Padding="10,2" Margin="0,0,10,0" />
</StackPanel>
diff --git a/win/CS/HandBrakeWPF/defaultsettings.xml b/win/CS/HandBrakeWPF/defaultsettings.xml new file mode 100644 index 000000000..6fea12dc4 --- /dev/null +++ b/win/CS/HandBrakeWPF/defaultsettings.xml @@ -0,0 +1,411 @@ +<?xml version="1.0"?>
+<dictionary>
+ <item>
+ <key>
+ <string>X264Step</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:double" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">0.25</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>Verbosity</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">1</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>WhenCompleteAction</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">Do nothing</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>GrowlEncode</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>GrowlQueue</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>ProcessPriority</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">Below Normal</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>PreventSleep</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>ShowCLI</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>SaveLogToCopyDirectory</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>SaveLogWithVideo</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>DisableLibDvdNav</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>SendFile</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>MinTitleScanDuration</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">10</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>HandBrakeBuild</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">00010101</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>HandBrakeVersion</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">NotSet</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>updateStatus</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>tooltipEnable</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>defaultPreset</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance" />
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>skipversion</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">0</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>autoNaming</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>autoNamePath</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance" />
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>appcast</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">http://handbrake.fr/appcast.xml</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>appcast_unstable</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">http://handbrake.fr/appcast_unstable.xml</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>autoNameFormat</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">{source}-{title}</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>VLC_Path</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">C:\Program Files\VideoLAN\vlc\vlc.exe</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>MainWindowMinimize</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>QueryEditorTab</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>presetNotification</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>trayIconAlerts</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>lastUpdateCheckDate</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:dateTime" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">2011-08-15T00:00:00+01:00</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>daysBetweenUpdateCheck</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">7</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>useM4v</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">0</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>PromptOnUnmatchingQueries</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>NativeLanguage</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">Any</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>DubMode</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">255</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>CliExeHash</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance" />
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>previewScanCount</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">10</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>clearOldLogs</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>AutoNameTitleCase</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>AutoNameRemoveUnderscore</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>ActivityWindowLastMode</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">0</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>useClosedCaption</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>batchMinDuration</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">00:18:00</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>batchMaxDuration</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">02:30:00</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>defaultPlayer</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">false</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>SelectedLanguages</string>
+ </key>
+ <value>
+ <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>DubModeAudio</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">0</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>DubModeSubtitle</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">0</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>addOnlyOneAudioPerLanguage</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:boolean" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">true</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>MinTitleLength</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:int" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">10</anyType>
+ </value>
+ </item>
+ <item>
+ <key>
+ <string>HandBrakeExeHash</string>
+ </key>
+ <value>
+ <anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d4p1:type="q1:string" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance">RQuM6TVXbXkdih1PmGTf+h178Ho=</anyType>
+ </value>
+ </item>
+</dictionary>
\ No newline at end of file |