/// <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)) { Collections.SerializableDictionary <string, object> data = (Collections.SerializableDictionary <string, object>) this.serializer.Deserialize(reader); this.userSettings = data; } } else { this.userSettings = new Collections.SerializableDictionary <string, object>(); } // Add any missing / new settings Collections.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 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)) { Collections.SerializableDictionary <string, object> data = (Collections.SerializableDictionary <string, object>) this.serializer.Deserialize(reader); this.userSettings = data; } } else { this.userSettings = new Collections.SerializableDictionary <string, object>(); } // Add any missing / new settings Collections.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(Resources.UserSettings_YourSettingsHaveBeenReset, Resources.UserSettings_YourSettingsAreCorrupt, exc); } catch (Exception) { throw new GeneralApplicationException(string.Format(Resources.UserSettings_UnableToLoad, this.settingsFile), Resources.UserSettings_UnableToLoadSolution, 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)) { Collections.SerializableDictionary <string, object> data = (Collections.SerializableDictionary <string, object>) this.serializer.Deserialize(reader); this.userSettings = data; } } else if (VersionHelper.IsNightly() && File.Exists(Path.Combine(DirectoryUtilities.GetUserStoragePath(false), "settings.xml"))) { // Port the release versions config to the nightly. string releasePresetFile = Path.Combine(DirectoryUtilities.GetUserStoragePath(false), "settings.xml"); if (!Directory.Exists(DirectoryUtilities.GetUserStoragePath(true))) { Directory.CreateDirectory(DirectoryUtilities.GetUserStoragePath(true)); } File.Copy(releasePresetFile, Path.Combine(DirectoryUtilities.GetUserStoragePath(true), "settings.xml")); using (StreamReader reader = new StreamReader(this.settingsFile)) { Collections.SerializableDictionary <string, object> data = (Collections.SerializableDictionary <string, object>) this.serializer.Deserialize(reader); this.userSettings = data; } } else { this.userSettings = new Collections.SerializableDictionary <string, object>(); } // Add any missing / new settings Collections.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(Resources.UserSettings_YourSettingsHaveBeenReset, Resources.UserSettings_YourSettingsAreCorrupt, exc); } catch (Exception) { throw new GeneralApplicationException(string.Format(Resources.UserSettings_UnableToLoad, this.settingsFile), Resources.UserSettings_UnableToLoadSolution, exc); } } }