From f0dbe6e2a2af173e60a20da86c78692757e69112 Mon Sep 17 00:00:00 2001 From: sr55 Date: Tue, 19 Nov 2013 22:41:36 +0000 Subject: WinGui: Finish off moving the User Settings service to the UI Layer. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5898 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- .../ASUserSettingConstants.cs | 27 --- .../HandBrake.ApplicationServices.csproj | 3 - .../Services/Interfaces/IQueueProcessor.cs | 5 +- .../Services/Interfaces/IUserSettingService.cs | 71 ------- .../Services/QueueProcessor.cs | 23 ++- .../Services/UserSettingService.cs | 226 --------------------- .../ServicesWindsorInstaller.cs | 1 - 7 files changed, 16 insertions(+), 340 deletions(-) delete mode 100644 win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs delete mode 100644 win/CS/HandBrake.ApplicationServices/Services/Interfaces/IUserSettingService.cs delete mode 100644 win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs (limited to 'win/CS/HandBrake.ApplicationServices') diff --git a/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs b/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs deleted file mode 100644 index bea0a8844..000000000 --- a/win/CS/HandBrake.ApplicationServices/ASUserSettingConstants.cs +++ /dev/null @@ -1,27 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. -// -// -// The User Setting Constants -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace HandBrake.ApplicationServices -{ - /// - /// Constants for the User Settings Service - /// - public class ASUserSettingConstants - { - /// - /// HandBrakes build - /// - public const string HandBrakeBuild = "HandBrakeBuild"; - - /// - /// Clear completed items from the queue automatically. - /// - public const string ClearCompletedFromQueue = "ClearCompletedFromQueue"; - } -} diff --git a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj index e9386ac37..6110c187d 100644 --- a/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj +++ b/win/CS/HandBrake.ApplicationServices/HandBrake.ApplicationServices.csproj @@ -143,13 +143,10 @@ - - - diff --git a/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IQueueProcessor.cs b/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IQueueProcessor.cs index f1ba5c7fe..8fb61109a 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IQueueProcessor.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IQueueProcessor.cs @@ -173,7 +173,10 @@ namespace HandBrake.ApplicationServices.Services.Interfaces /// Starts encoding the first job in the queue and continues encoding until all jobs /// have been encoded. /// - void Start(); + /// + /// The clear Completed. + /// + void Start(bool clearCompleted); #endregion } diff --git a/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IUserSettingService.cs b/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IUserSettingService.cs deleted file mode 100644 index bf6cb9c91..000000000 --- a/win/CS/HandBrake.ApplicationServices/Services/Interfaces/IUserSettingService.cs +++ /dev/null @@ -1,71 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. -// -// -// The User Setting Service Interace. -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace HandBrake.ApplicationServices.Services.Interfaces -{ - using HandBrake.ApplicationServices.EventArgs; - - /// - /// The setting event handler. - /// - /// - /// The sender. - /// - /// - /// The e. - /// - public delegate void SettingEventHandler(object sender, SettingChangedEventArgs e); - - /// - /// The User Setting Service Interace. - /// - public interface IUserSettingService - { - /// - /// The setting changed. - /// - event SettingEventHandler SettingChanged; - - /// - /// Set the specified user setting. - /// - /// - /// Name of the property - /// - /// - /// The value to store. - /// - void SetUserSetting(string name, object value); - - /// - /// Get user setting for a given key. - /// - /// - /// The name. - /// - /// - /// The Type of the setting - /// - /// - /// The user setting - /// - T GetUserSetting(string name); - - /// - /// Get an StringCollection type user setting - /// - /// - /// The setting name - /// - /// - /// The settings value - /// - System.Collections.Specialized.StringCollection GetUserSettingStringCollection(string name); - } -} \ No newline at end of file diff --git a/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs b/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs index 1ade60d74..43c11a9bf 100644 --- a/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs +++ b/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs @@ -42,14 +42,14 @@ namespace HandBrake.ApplicationServices.Services private readonly BindingList queue = new BindingList(); /// - /// The User Setting Service + /// HandBrakes Queue file with a place holder for an extra string. /// - private readonly IUserSettingService userSettingService; + private readonly string queueFile; /// - /// HandBrakes Queue file with a place holder for an extra string. + /// The clear completed. /// - private readonly string queueFile; + private bool clearCompleted; #endregion @@ -61,15 +61,11 @@ namespace HandBrake.ApplicationServices.Services /// /// The encode Service. /// - /// - /// The user Setting Service. - /// /// /// Services are not setup /// - public QueueProcessor(IEncodeServiceWrapper encodeService, IUserSettingService userSettingService) + public QueueProcessor(IEncodeServiceWrapper encodeService) { - this.userSettingService = userSettingService; this.EncodeService = encodeService; // If this is the first instance, just use the main queue file, otherwise add the instance id to the filename. @@ -436,13 +432,18 @@ namespace HandBrake.ApplicationServices.Services /// Starts encoding the first job in the queue and continues encoding until all jobs /// have been encoded. /// - public void Start() + /// + /// The is Clear Completed. + /// + public void Start(bool isClearCompleted) { if (this.IsProcessing) { throw new Exception("Already Processing the Queue"); } + clearCompleted = isClearCompleted; + this.EncodeService.EncodeCompleted -= this.EncodeServiceEncodeCompleted; this.EncodeService.EncodeCompleted += this.EncodeServiceEncodeCompleted; @@ -472,7 +473,7 @@ namespace HandBrake.ApplicationServices.Services this.LastProcessedJob.Status = QueueItemStatus.Completed; // Clear the completed item of the queue if the setting is set. - if (this.userSettingService.GetUserSetting(ASUserSettingConstants.ClearCompletedFromQueue)) + if (clearCompleted) { this.ClearCompleted(); } diff --git a/win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs b/win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs deleted file mode 100644 index 7f40bffff..000000000 --- a/win/CS/HandBrake.ApplicationServices/Services/UserSettingService.cs +++ /dev/null @@ -1,226 +0,0 @@ -// -------------------------------------------------------------------------------------------------------------------- -// -// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. -// -// -// The User Setting Serivce -// -// -------------------------------------------------------------------------------------------------------------------- - -namespace HandBrake.ApplicationServices.Services -{ - using System; - using System.Collections.Specialized; - using System.IO; - using System.Linq; - using System.Reflection; - using System.Xml.Serialization; - - using HandBrake.ApplicationServices.Collections; - using HandBrake.ApplicationServices.EventArgs; - using HandBrake.ApplicationServices.Exceptions; - using HandBrake.ApplicationServices.Services.Interfaces; - - /// - /// The User Setting Serivce - /// - public class UserSettingService : IUserSettingService - { - /// - /// The Settings File - /// - private readonly string settingsFile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\settings.xml"; - - /// - /// The XML Serializer - /// - readonly XmlSerializer serializer = new XmlSerializer(typeof(SerializableDictionary)); - - /// - /// The User Settings - /// - private SerializableDictionary userSettings; - - /// - /// Initializes a new instance of the class. - /// - public UserSettingService() - { - this.Load(); - } - - /// - /// The setting changed. - /// - public event SettingEventHandler SettingChanged; - - /// - /// Set the specified user setting. - /// - /// - /// Name of the property - /// - /// - /// The value to store. - /// - public void SetUserSetting(string name, object value) - { - this.userSettings[name] = value; - this.Save(); - - this.OnSettingChanged(new SettingChangedEventArgs { Key = name, Value = value }); - } - - /// - /// Get user setting for a given key. - /// - /// - /// The name. - /// - /// - /// The Type of the setting - /// - /// - /// The user setting - /// - public T GetUserSetting(string name) - { - if (this.userSettings.ContainsKey(name)) - { - return (T)this.userSettings[name]; - } - - return default(T); - } - - /// - /// Get an StringCollection type user setting - /// - /// - /// The setting name - /// - /// - /// The settings value - /// - public StringCollection GetUserSettingStringCollection(string name) - { - return (StringCollection)this.userSettings[name]; - } - - /// - /// The on setting changed. - /// - /// - /// The e. - /// - protected virtual void OnSettingChanged(SettingChangedEventArgs e) - { - SettingEventHandler handler = this.SettingChanged; - if (handler != null) - { - handler(this, e); - } - } - - /// - /// Save the User Settings - /// - private void Save() - { - try - { - string directory = Path.GetDirectoryName(this.settingsFile); - if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory)) - { - Directory.CreateDirectory(directory); - } - - using (FileStream strm = new FileStream(this.settingsFile, FileMode.Create, FileAccess.Write)) - { - serializer.Serialize(strm, this.userSettings); - } - } - catch (Exception exc) - { - throw new GeneralApplicationException( - "A problem occured when trying to save your preferences.", - "Any settings you changed may need to be reset the next time HandBrake launches.", - exc); - } - } - - /// - /// Load the User Settings - /// - private void Load() - { - try - { - // Load up the users current settings file. - if (File.Exists(this.settingsFile)) - { - using (StreamReader reader = new StreamReader(this.settingsFile)) - { - SerializableDictionary data = (SerializableDictionary)serializer.Deserialize(reader); - this.userSettings = data; - } - } - else - { - this.userSettings = new SerializableDictionary(); - } - - // Add any missing / new settings - SerializableDictionary defaults = this.GetDefaults(); - foreach (var item in defaults.Where(item => !this.userSettings.Keys.Contains(item.Key))) - { - this.userSettings.Add(item.Key, item.Value); - this.Save(); - } - } - catch (Exception exc) - { - try - { - this.userSettings = this.GetDefaults(); - if (File.Exists(this.settingsFile)) - { - File.Delete(this.settingsFile); - } - this.Save(); - - throw new GeneralApplicationException("Warning, your settings have been reset!", "Your user settings file was corrupted or inaccessible. Settings have been reset to defaults.", exc); - } - catch (Exception) - { - throw new GeneralApplicationException("Unable to load user settings file: " + this.settingsFile, "Your user settings file appears to be inaccessible or corrupted. You may have to delete the file and let HandBrake generate a new one.", exc); - } - } - } - - /// - /// Load Default Settings - /// - /// - /// The get defaults. - /// - private SerializableDictionary GetDefaults() - { - try - { - Assembly assembly = Assembly.GetEntryAssembly(); - Stream stream = assembly.GetManifestResourceStream("HandBrakeWPF.defaultsettings.xml"); - if (stream != null) - { - return (SerializableDictionary)this.serializer.Deserialize(stream); - } - } - catch (Exception exc) - { - return new SerializableDictionary(); - } - - return new SerializableDictionary(); - } - } -} diff --git a/win/CS/HandBrake.ApplicationServices/ServicesWindsorInstaller.cs b/win/CS/HandBrake.ApplicationServices/ServicesWindsorInstaller.cs index b787aa18b..2ffd29046 100644 --- a/win/CS/HandBrake.ApplicationServices/ServicesWindsorInstaller.cs +++ b/win/CS/HandBrake.ApplicationServices/ServicesWindsorInstaller.cs @@ -31,7 +31,6 @@ namespace HandBrake.ApplicationServices { container.Register(Component.For().ImplementedBy()); container.Register(Component.For().ImplementedBy()); - container.Register(Component.For().ImplementedBy()); } #endregion -- cgit v1.2.3