diff options
author | sr55 <[email protected]> | 2013-11-19 22:41:36 +0000 |
---|---|---|
committer | sr55 <[email protected]> | 2013-11-19 22:41:36 +0000 |
commit | f0dbe6e2a2af173e60a20da86c78692757e69112 (patch) | |
tree | 5c7e67c77449b3839654e2d34e1105faec5ed114 /win/CS/HandBrake.ApplicationServices/Services | |
parent | 830bb18b173a1c68720eb0df2ed860daea7d4c7e (diff) |
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
Diffstat (limited to 'win/CS/HandBrake.ApplicationServices/Services')
4 files changed, 16 insertions, 309 deletions
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.
/// </summary>
- void Start();
+ /// <param name="clearCompleted">
+ /// The clear Completed.
+ /// </param>
+ 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 @@ -// --------------------------------------------------------------------------------------------------------------------
-// <copyright file="IUserSettingService.cs" company="HandBrake Project (http://handbrake.fr)">
-// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
-// </copyright>
-// <summary>
-// The User Setting Service Interace.
-// </summary>
-// --------------------------------------------------------------------------------------------------------------------
-
-namespace HandBrake.ApplicationServices.Services.Interfaces
-{
- using HandBrake.ApplicationServices.EventArgs;
-
- /// <summary>
- /// The setting event handler.
- /// </summary>
- /// <param name="sender">
- /// The sender.
- /// </param>
- /// <param name="e">
- /// The e.
- /// </param>
- public delegate void SettingEventHandler(object sender, SettingChangedEventArgs e);
-
- /// <summary>
- /// The User Setting Service Interace.
- /// </summary>
- public interface IUserSettingService
- {
- /// <summary>
- /// The setting changed.
- /// </summary>
- event SettingEventHandler SettingChanged;
-
- /// <summary>
- /// Set the specified user setting.
- /// </summary>
- /// <param name="name">
- /// Name of the property
- /// </param>
- /// <param name="value">
- /// The value to store.
- /// </param>
- void SetUserSetting(string name, object value);
-
- /// <summary>
- /// Get user setting for a given key.
- /// </summary>
- /// <param name="name">
- /// The name.
- /// </param>
- /// <typeparam name="T">
- /// The Type of the setting
- /// </typeparam>
- /// <returns>
- /// The user setting
- /// </returns>
- T GetUserSetting<T>(string name);
-
- /// <summary>
- /// Get an StringCollection type user setting
- /// </summary>
- /// <param name="name">
- /// The setting name
- /// </param>
- /// <returns>
- /// The settings value
- /// </returns>
- 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<QueueTask> queue = new BindingList<QueueTask>();
/// <summary>
- /// The User Setting Service
+ /// HandBrakes Queue file with a place holder for an extra string.
/// </summary>
- private readonly IUserSettingService userSettingService;
+ private readonly string queueFile;
/// <summary>
- /// HandBrakes Queue file with a place holder for an extra string.
+ /// The clear completed.
/// </summary>
- private readonly string queueFile;
+ private bool clearCompleted;
#endregion
@@ -61,15 +61,11 @@ namespace HandBrake.ApplicationServices.Services /// <param name="encodeService">
/// The encode Service.
/// </param>
- /// <param name="userSettingService">
- /// The user Setting Service.
- /// </param>
/// <exception cref="ArgumentNullException">
/// Services are not setup
/// </exception>
- 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.
/// </summary>
- public void Start()
+ /// <param name="isClearCompleted">
+ /// The is Clear Completed.
+ /// </param>
+ 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<bool>(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 @@ -// --------------------------------------------------------------------------------------------------------------------
-// <copyright file="UserSettingService.cs" company="HandBrake Project (http://handbrake.fr)">
-// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
-// </copyright>
-// <summary>
-// The User Setting Serivce
-// </summary>
-// --------------------------------------------------------------------------------------------------------------------
-
-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;
-
- /// <summary>
- /// The User Setting Serivce
- /// </summary>
- public class UserSettingService : IUserSettingService
- {
- /// <summary>
- /// The Settings File
- /// </summary>
- private readonly string settingsFile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\settings.xml";
-
- /// <summary>
- /// The XML Serializer
- /// </summary>
- readonly XmlSerializer serializer = new XmlSerializer(typeof(SerializableDictionary<string, object>));
-
- /// <summary>
- /// The User Settings
- /// </summary>
- private SerializableDictionary<string, object> userSettings;
-
- /// <summary>
- /// Initializes a new instance of the <see cref="UserSettingService"/> class.
- /// </summary>
- public UserSettingService()
- {
- this.Load();
- }
-
- /// <summary>
- /// The setting changed.
- /// </summary>
- public event SettingEventHandler SettingChanged;
-
- /// <summary>
- /// Set the specified user setting.
- /// </summary>
- /// <param name="name">
- /// Name of the property
- /// </param>
- /// <param name="value">
- /// The value to store.
- /// </param>
- public void SetUserSetting(string name, object value)
- {
- this.userSettings[name] = value;
- this.Save();
-
- this.OnSettingChanged(new SettingChangedEventArgs { Key = name, Value = value });
- }
-
- /// <summary>
- /// Get user setting for a given key.
- /// </summary>
- /// <param name="name">
- /// The name.
- /// </param>
- /// <typeparam name="T">
- /// The Type of the setting
- /// </typeparam>
- /// <returns>
- /// The user setting
- /// </returns>
- public T GetUserSetting<T>(string name)
- {
- if (this.userSettings.ContainsKey(name))
- {
- return (T)this.userSettings[name];
- }
-
- return default(T);
- }
-
- /// <summary>
- /// Get an StringCollection type user setting
- /// </summary>
- /// <param name="name">
- /// The setting name
- /// </param>
- /// <returns>
- /// The settings value
- /// </returns>
- public StringCollection GetUserSettingStringCollection(string name)
- {
- return (StringCollection)this.userSettings[name];
- }
-
- /// <summary>
- /// The on setting changed.
- /// </summary>
- /// <param name="e">
- /// The e.
- /// </param>
- protected virtual void OnSettingChanged(SettingChangedEventArgs e)
- {
- SettingEventHandler handler = this.SettingChanged;
- if (handler != null)
- {
- handler(this, e);
- }
- }
-
- /// <summary>
- /// Save the User Settings
- /// </summary>
- 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);
- }
- }
-
- /// <summary>
- /// Load the User Settings
- /// </summary>
- private void Load()
- {
- try
- {
- // Load up the users current settings file.
- if (File.Exists(this.settingsFile))
- {
- using (StreamReader reader = new StreamReader(this.settingsFile))
- {
- SerializableDictionary<string, object> data = (SerializableDictionary<string, object>)serializer.Deserialize(reader);
- this.userSettings = data;
- }
- }
- else
- {
- this.userSettings = new SerializableDictionary<string, object>();
- }
-
- // Add any missing / new settings
- SerializableDictionary<string, object> 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);
- }
- }
- }
-
- /// <summary>
- /// Load Default Settings
- /// </summary>
- /// <returns>
- /// The get defaults.
- /// </returns>
- private SerializableDictionary<string, object> GetDefaults()
- {
- try
- {
- Assembly assembly = Assembly.GetEntryAssembly();
- Stream stream = assembly.GetManifestResourceStream("HandBrakeWPF.defaultsettings.xml");
- if (stream != null)
- {
- return (SerializableDictionary<string, object>)this.serializer.Deserialize(stream);
- }
- }
- catch (Exception exc)
- {
- return new SerializableDictionary<string, object>();
- }
-
- return new SerializableDictionary<string, object>();
- }
- }
-}
|