private void Edit() { if (SelectedBookmark != null) { // edit a copy var editBmk = new BookmarkViewModel(SelectedBookmark); editBmk.SetEditMode(SelectedBookmark.ToBookmark()); var dlg = new BookmarkDetailWindow { DataContext = editBmk, Owner = ownerWnd }; var result = dlg.ShowDialog(); if (result.HasValue && result.Value) { editBmk.SetExtendedProperties(); if (SelectedBookmark != editBmk) { ClearStar(SelectedBookmark.ToBookmark()); } var bmk = BookmarkLibrary.Instance.Find(SelectedBookmark.ToBookmark()); if (bmk != null) { BookmarkLibrary.Instance.Bookmarks.Remove(bmk); Bookmarks.Remove(SelectedBookmark); } var newBmk = new Bookmark(editBmk.SearchFor, editBmk.ReplaceWith, editBmk.FilePattern) { Description = editBmk.Description, IgnoreFilePattern = editBmk.IgnoreFilePattern, TypeOfFileSearch = editBmk.TypeOfFileSearch, TypeOfSearch = editBmk.TypeOfSearch, CaseSensitive = editBmk.CaseSensitive, WholeWord = editBmk.WholeWord, Multiline = editBmk.Multiline, Singleline = editBmk.Singleline, BooleanOperators = editBmk.BooleanOperators, IncludeSubfolders = editBmk.IncludeSubfolders, MaxSubfolderDepth = editBmk.MaxSubfolderDepth, IncludeHiddenFiles = editBmk.IncludeHidden, IncludeBinaryFiles = editBmk.IncludeBinary, UseGitignore = editBmk.UseGitignore, IncludeArchive = editBmk.IncludeArchive, FollowSymlinks = editBmk.FollowSymlinks, CodePage = editBmk.CodePage, }; string[] paths = editBmk.PathReferences.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries); newBmk.FolderReferences.AddRange(paths); BookmarkLibrary.Instance.Bookmarks.Add(newBmk); BookmarkLibrary.Save(); Bookmarks.AddNewItem(editBmk); Bookmarks.CommitNew(); SelectedBookmark = editBmk; } } }
private void CloneBookmark() { if (MW.RightShellVM == this) { MW.LeftShellVM.Bookmarks.Add(SelectedBookmark.Clone()); } else if (MW.LeftShellVM == this) { MW.RightShellVM.Bookmarks.Add(SelectedBookmark.Clone()); } }
private void Delete() { if (SelectedBookmark != null) { ClearStar(SelectedBookmark.ToBookmark()); var bmk = BookmarkLibrary.Instance.Find(SelectedBookmark.ToBookmark()); if (bmk != null) { BookmarkLibrary.Instance.Bookmarks.Remove(bmk); BookmarkLibrary.Save(); Bookmarks.Remove(SelectedBookmark); } } }