public void ReportFolderExpanded(PresetFolderViewModel presetFolderViewModel) { if (!this.isAutomaticExpansion) { this.PresetFolderManuallyExpanded?.Invoke(this, presetFolderViewModel); } }
public void RenamePreset(string newPresetName) { this.SelectedPreset.Preset.Name = newPresetName; // Remove from the folder and add it back again so it goes in the right place. PresetFolderViewModel currentFolder = this.FindFolderViewModel(this.SelectedPreset.Preset.FolderId); currentFolder.RemoveItem(this.SelectedPreset); currentFolder.AddItem(this.SelectedPreset); this.SavePreset(); }
private void EnsurePresetFolderExpanded(PresetFolderViewModel presetFolderViewModel) { if (presetFolderViewModel == null) { return; } this.isAutomaticExpansion = true; presetFolderViewModel.IsExpanded = true; this.isAutomaticExpansion = false; this.EnsurePresetFolderExpanded(presetFolderViewModel.Parent); }
public void MovePresetToFolder(PresetViewModel presetViewModel, PresetFolderViewModel targetFolder) { PresetFolderViewModel previousFolder = this.FindFolderViewModel(presetViewModel.Preset.FolderId); previousFolder.RemoveItem(presetViewModel); targetFolder.AddItem(presetViewModel); presetViewModel.Preset.FolderId = targetFolder.Id; targetFolder.IsExpanded = true; this.SaveUserPresets(); }
public void CreateSubFolder(PresetFolderViewModel folderViewModel) { var dialogVM = new ChooseNameViewModel(EncodingRes.ChooseNameSubfolder, new List <string>()); dialogVM.Name = EncodingRes.DefaultPresetFolderName; var windowManager = Ioc.Get <IWindowManager>(); windowManager.OpenDialog(dialogVM, windowManager.Find <EncodingWindowViewModel>()); if (dialogVM.DialogResult) { string subfolderName = dialogVM.Name; PresetFolder newFolder = PresetFolderStorage.AddFolder(subfolderName, folderViewModel.Id); folderViewModel.AddSubfolder(PresetFolderViewModel.FromPresetFolder(newFolder, this)); } }
private bool RemovePresetFromFolder(PresetFolderViewModel folder, PresetViewModel presetViewModel) { if (folder.Items.Contains(presetViewModel)) { folder.RemoveItem(presetViewModel); return(true); } foreach (var subFolder in folder.SubFolders) { if (this.RemovePresetFromFolder(subFolder, presetViewModel)) { return(true); } } return(false); }
private bool RemoveFolderFromTree(PresetFolderViewModel folderToSearchIn, PresetFolderViewModel folderToRemove) { if (folderToSearchIn.SubFolders.Contains(folderToRemove)) { folderToSearchIn.RemoveSubfolder(folderToRemove); return(true); } foreach (PresetFolderViewModel folder in folderToSearchIn.SubFolders) { if (this.RemoveFolderFromTree(folder, folderToRemove)) { return(true); } } return(false); }
private PresetFolderViewModel FindFolderRecursive(PresetFolderViewModel currentFolder, long folderId) { if (currentFolder.Id == folderId) { return(currentFolder); } foreach (PresetFolderViewModel subFolder in currentFolder.SubFolders) { PresetFolderViewModel childResult = this.FindFolderRecursive(subFolder, folderId); if (childResult != null) { return(childResult); } } return(null); }
public void SaveFolderIsExpanded(PresetFolderViewModel folderViewModel) { if (folderViewModel.Id > 0) { // If ID > 0 then this is a custom preset folder. PresetFolderStorage.SetFolderIsExpanded(folderViewModel.Id, folderViewModel.IsExpanded); } else { // If not stored in preset folder table, save in config. string key; if (folderViewModel == this.customPresetFolder) { key = CustomFolderKey; } else if (folderViewModel == this.builtInFolder) { key = BuiltInFolderKey; } else { key = folderViewModel.Name; } if (folderViewModel.IsExpanded) { if (this.collapsedBuiltInFolders.Contains(key)) { this.collapsedBuiltInFolders.Remove(key); } } else { if (!this.collapsedBuiltInFolders.Contains(key)) { this.collapsedBuiltInFolders.Add(key); } } CustomConfig.CollapsedBuiltInFolders = this.collapsedBuiltInFolders; } }
private void PopulateCustomFolder(PresetFolderViewModel folderViewModel) { // Add all child folders var childFolders = this.presetFolders.Where(f => f.ParentId == folderViewModel.Id); foreach (PresetFolder childPresetFolder in childFolders) { var childFolderViewModel = PresetFolderViewModel.FromPresetFolder(childPresetFolder, this); this.PopulateCustomFolder(childFolderViewModel); folderViewModel.AddSubfolder(childFolderViewModel); } // Add all presets directly in folder var folderPresets = this.AllPresets.Where(p => p.Preset.FolderId == folderViewModel.Id); foreach (PresetViewModel presetViewModel in folderPresets) { folderViewModel.AddItem(presetViewModel); } }
public void RenameFolder(PresetFolderViewModel folderViewModel) { var dialogVM = new ChooseNameViewModel(EncodingRes.ChooseNewFolderName, new List <string>()); dialogVM.Name = folderViewModel.Name; var windowManager = Ioc.Get <IWindowManager>(); windowManager.OpenDialog(dialogVM, windowManager.Find <EncodingWindowViewModel>()); if (dialogVM.DialogResult) { string newName = dialogVM.Name; if (newName != folderViewModel.Name) { PresetFolderStorage.RenameFolder(folderViewModel.Id, newName); folderViewModel.Name = newName; // Remove and re-add the folder to get the folder in the right order. PresetFolderViewModel parentFolder = folderViewModel.Parent; parentFolder.RemoveSubfolder(folderViewModel); parentFolder.AddSubfolder(folderViewModel); } } }
public PresetsService() { List <Preset> userPresets = PresetStorage.UserPresets; this.presetFolders = PresetFolderStorage.PresetFolders; this.collapsedBuiltInFolders = CustomConfig.CollapsedBuiltInFolders; var unmodifiedPresets = userPresets.Where(preset => !preset.IsModified); Preset modifiedPreset = userPresets.FirstOrDefault(preset => preset.IsModified); this.allPresets = new ObservableCollection <PresetViewModel>(); int modifiedPresetIndex = -1; int defaultPresetIndex = 0; foreach (Preset userPreset in unmodifiedPresets) { PresetViewModel presetVM; if (modifiedPreset != null && modifiedPreset.Name == userPreset.Name) { modifiedPresetIndex = this.allPresets.Count; presetVM = new PresetViewModel(modifiedPreset); presetVM.OriginalProfile = userPreset.EncodingProfile; } else { presetVM = new PresetViewModel(userPreset); } this.allPresets.Add(presetVM); } // Populate the custom preset folder before built-in presets are added to AllPresets collection. this.customPresetFolder = new PresetFolderViewModel(this, !this.collapsedBuiltInFolders.Contains(CustomFolderKey)) { Name = EncodingRes.PresetFolder_Custom, Id = 0, IsBuiltIn = false }; this.PopulateCustomFolder(this.customPresetFolder); // Populate built-in folder from HandBrake presets IList <PresetCategory> handBrakePresets = HandBrakePresetService.GetBuiltInPresets(); this.builtInFolder = new PresetFolderViewModel(this, !this.collapsedBuiltInFolders.Contains(BuiltInFolderKey)) { Name = EncodingRes.PresetFolder_BuiltIn, IsBuiltIn = true }; foreach (PresetCategory handbrakePresetCategory in handBrakePresets) { var builtInSubfolder = new PresetFolderViewModel(this, !this.collapsedBuiltInFolders.Contains(handbrakePresetCategory.PresetName)) { Name = handbrakePresetCategory.PresetName, IsBuiltIn = true, }; this.builtInFolder.AddSubfolder(builtInSubfolder); foreach (HBPreset handbrakePreset in handbrakePresetCategory.ChildrenArray) { if (handbrakePreset.Default) { defaultPresetIndex = this.allPresets.Count; } Preset builtInPreset = PresetConverter.ConvertHandBrakePresetToVC(handbrakePreset); PresetViewModel builtInPresetViewModel = new PresetViewModel(builtInPreset); this.allPresets.Add(builtInPresetViewModel); builtInSubfolder.AddItem(builtInPresetViewModel); } } this.allPresetsTree = new ObservableCollection <PresetFolderViewModel>(); if (this.customPresetFolder.Items.Count > 0 || this.customPresetFolder.SubFolders.Count > 0) { this.AllPresetsTree.Add(this.customPresetFolder); } this.AllPresetsTree.Add(this.builtInFolder); // Always select the modified preset if it exists. // Otherwise, choose the last selected preset. int presetIndex; if (modifiedPresetIndex >= 0) { presetIndex = modifiedPresetIndex; } else { int lastPresetIndex = Config.LastPresetIndex; if (lastPresetIndex >= 0) { presetIndex = lastPresetIndex; } else { presetIndex = defaultPresetIndex; } } if (presetIndex >= this.allPresets.Count) { presetIndex = 0; } this.SelectedPreset = this.allPresets[presetIndex]; }
public void RemoveFolder(PresetFolderViewModel folderViewModel) { PresetFolderStorage.RemoveFolder(folderViewModel.Id); this.RemoveFolderFromTree(this.customPresetFolder, folderViewModel); }