Example #1
0
 public void ReportFolderExpanded(PresetFolderViewModel presetFolderViewModel)
 {
     if (!this.isAutomaticExpansion)
     {
         this.PresetFolderManuallyExpanded?.Invoke(this, presetFolderViewModel);
     }
 }
Example #2
0
        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();
        }
Example #3
0
        private void EnsurePresetFolderExpanded(PresetFolderViewModel presetFolderViewModel)
        {
            if (presetFolderViewModel == null)
            {
                return;
            }

            this.isAutomaticExpansion        = true;
            presetFolderViewModel.IsExpanded = true;
            this.isAutomaticExpansion        = false;

            this.EnsurePresetFolderExpanded(presetFolderViewModel.Parent);
        }
Example #4
0
        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();
        }
Example #5
0
        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));
            }
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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;
            }
        }
Example #10
0
        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);
            }
        }
Example #11
0
        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);
                }
            }
        }
Example #12
0
        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];
        }
Example #13
0
 public void RemoveFolder(PresetFolderViewModel folderViewModel)
 {
     PresetFolderStorage.RemoveFolder(folderViewModel.Id);
     this.RemoveFolderFromTree(this.customPresetFolder, folderViewModel);
 }