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;
                }
            }
        }
示例#2
0
 private void CloneBookmark()
 {
     if (MW.RightShellVM == this)
     {
         MW.LeftShellVM.Bookmarks.Add(SelectedBookmark.Clone());
     }
     else if (MW.LeftShellVM == this)
     {
         MW.RightShellVM.Bookmarks.Add(SelectedBookmark.Clone());
     }
 }
示例#3
0
        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);
                }
            }
        }