/// </summary>\r
void Load();\r
\r
+ /// <summary>\r
+ /// Save the state of the Preset Treview\r
+ /// </summary>\r
+ void SaveCategoryStates();\r
+\r
+ /// <summary>\r
+ /// Load the state of the Preset Treeview.\r
+ /// </summary>\r
+ void LoadCategoryStates();\r
+\r
/// <summary>\r
/// Add a new preset to the system\r
/// </summary>\r
foreach (var hbpreset in category.ChildrenArray)\r
{\r
Preset preset = JsonPresetFactory.ImportPreset(hbpreset);\r
- preset.IsBuildIn = true; \r
+ preset.IsBuildIn = true;\r
preset.Category = category.PresetName;\r
preset.Task.AllowedPassthruOptions = new AllowedPassthru(true); // We don't want to override the built-in preset\r
\r
selectedPreset.IsSelected = true;\r
}\r
\r
+ public void SaveCategoryStates()\r
+ {\r
+ StringCollection expandedPresets = new StringCollection();\r
+ foreach (IPresetObject presetObject in this.presets)\r
+ {\r
+ PresetDisplayCategory category = presetObject as PresetDisplayCategory;\r
+ if (category != null && category.IsExpanded)\r
+ {\r
+ expandedPresets.Add(category.Category);\r
+ }\r
+ }\r
+\r
+ this.userSettingService.SetUserSetting(UserSettingConstants.PresetExpandedStateList, expandedPresets);\r
+ }\r
+\r
+ public void LoadCategoryStates()\r
+ {\r
+ StringCollection expandedPresets = this.userSettingService.GetUserSetting<StringCollection>(UserSettingConstants.PresetExpandedStateList);\r
+ if (expandedPresets == null || expandedPresets.Count == 0)\r
+ {\r
+ return;\r
+ }\r
+\r
+ foreach (IPresetObject presetObject in this.presets)\r
+ {\r
+ PresetDisplayCategory category = presetObject as PresetDisplayCategory;\r
+ if (category != null && expandedPresets.Contains(category.Category))\r
+ {\r
+ category.IsExpanded = true;\r
+ }\r
+ }\r
+ }\r
+\r
#endregion\r
\r
#region Private Helpers\r
{\r
string filename = this.RecoverFromCorruptedPresetFile(this.presetFile);\r
this.errorService.ShowMessageBox(\r
- Resources.PresetService_UnableToLoadPresets + filename,\r
- Resources.PresetService_UnableToLoad,\r
- MessageBoxButton.OK,\r
- MessageBoxImage.Exclamation);\r
+ Resources.PresetService_UnableToLoadPresets + filename,\r
+ Resources.PresetService_UnableToLoad,\r
+ MessageBoxButton.OK,\r
+ MessageBoxImage.Exclamation);\r
\r
this.UpdateBuiltInPresets();\r
return; // Update built-in presets stores the presets locally, so just return.\r
foreach (HBPreset hbpreset in category.ChildrenArray)\r
{\r
Preset preset = JsonPresetFactory.ImportPreset(hbpreset);\r
- preset.Category = category.PresetName;\r
+ \r
+ // Migration\r
+ if (category.PresetName == "User Presets")\r
+ {\r
+ preset.Category = UserPresetCatgoryName;\r
+ }\r
+ else\r
+ {\r
+ preset.Category = category.PresetName;\r
+ }\r
preset.IsBuildIn = hbpreset.Type == 0;\r
\r
// IF we are using Source Max, Set the Max Width / Height values.\r
// Wrap the categories in a container. \r
JsonSerializerSettings settings = new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore };\r
PresetTransportContainer container = new PresetTransportContainer(\r
- Constants.PresetVersionMajor,\r
- Constants.PresetVersionMinor,\r
- Constants.PresetVersionMicro) { PresetList = new List<object>() };\r
+ Constants.PresetVersionMajor,\r
+ Constants.PresetVersionMinor,\r
+ Constants.PresetVersionMicro)\r
+ { PresetList = new List<object>() };\r
container.PresetList.AddRange(presetCategories.Values);\r
container.PresetList.AddRange(uncategorisedPresets);\r
\r
\r
#endregion\r
}\r
-}\r
+}
\ No newline at end of file
/// The last preview duration\r
/// </summary>\r
public const string LastPreviewDuration = "LastPreviewDuration";\r
- \r
+\r
/// <summary>\r
/// When Complete Action\r
/// </summary>\r
/// </summary>\r
public const string RemovePunctuation = "RemovePunctuation";\r
\r
+ /// <summary>\r
+ /// The Show Preset Panel\r
+ /// </summary>\r
+ public const string ShowPresetPanel = "ShowPresetPanel";\r
+\r
/// <summary>\r
/// The reset when done action.\r
/// </summary>\r
{\r
this.selectedPreset = value;\r
this.NotifyOfPropertyChange(() => this.SelectedPreset);\r
+\r
+ if (value != null)\r
+ {\r
+ this.PresetSelect(value);\r
+ }\r
}\r
}\r
}\r
this.presetService.Load();\r
this.PresetsCategories = this.presetService.Presets;\r
this.NotifyOfPropertyChange(() => this.PresetsCategories);\r
+ this.presetService.LoadCategoryStates();\r
\r
this.SummaryViewModel.OutputFormatChanged += this.SummaryViewModel_OutputFormatChanged;\r
\r
{\r
// Shutdown Service\r
this.queueProcessor.Stop();\r
+ this.presetService.SaveCategoryStates();\r
\r
// Unsubscribe from Events.\r
this.scanService.ScanStarted -= this.ScanStared;\r
Preset preset = presetViewModel.Preset;\r
\r
this.NotifyOfPropertyChange(() => this.CategoryPresets);\r
- this.SelectedPreset = preset; // Reselect the preset \r
+ this.selectedPreset = preset; // Reselect the preset \r
+ this.NotifyOfPropertyChange(() => this.SelectedPreset);\r
}\r
\r
/// <summary>\r
this.SelectedPresetCategory = this.PresetsCategories.FirstOrDefault(c => c.Category == preset.Category);\r
}\r
\r
- this.SelectedPreset = preset;\r
- }\r
+ this.selectedPreset = preset;\r
+ this.NotifyOfPropertyChange(() => this.SelectedPreset);\r
\r
- this.presetService.SetSelected(this.selectedPreset);\r
- \r
- if (this.selectedPreset != null)\r
- {\r
- // Tab Settings\r
- this.PictureSettingsViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
- this.VideoViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
- this.FiltersViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
- this.AudioViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
- this.SubtitleViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
- this.ChaptersViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
- this.AdvancedViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
- this.MetaDataViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
- this.SummaryViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.presetService.SetSelected(this.selectedPreset);\r
+\r
+ if (this.selectedPreset != null)\r
+ {\r
+ // Tab Settings\r
+ this.PictureSettingsViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.VideoViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.FiltersViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.AudioViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.SubtitleViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.ChaptersViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.AdvancedViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.MetaDataViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ this.SummaryViewModel.SetPreset(this.selectedPreset, this.CurrentTask);\r
+ }\r
}\r
}\r
\r
\r
this.SelectedPresetCategory = category;\r
this.SelectedPreset = this.presetService.DefaultPreset;\r
- this.PresetSelect();\r
}\r
}\r
\r