From bbf0565fe2867bcfb67897fe686b44e5dce03e87 Mon Sep 17 00:00:00 2001 From: Andreas Weizel Date: Wed, 23 Jul 2014 00:48:14 +0200 Subject: [PATCH] Deleting all selected bookmarks or breakpoints in pad (on Del key or toolbar command), not only one of them. --- .../Base/Project/Editor/Bookmarks/BookmarkPad.cs | 13 ++++++++++--- .../Editor/Bookmarks/BookmarkPadToolbarCommands.cs | 7 +++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Main/Base/Project/Editor/Bookmarks/BookmarkPad.cs b/src/Main/Base/Project/Editor/Bookmarks/BookmarkPad.cs index b7c5dcb1fc..499c02737c 100644 --- a/src/Main/Base/Project/Editor/Bookmarks/BookmarkPad.cs +++ b/src/Main/Base/Project/Editor/Bookmarks/BookmarkPad.cs @@ -65,6 +65,10 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks get { return (SDBookmark)this.control.listView.SelectedItem; } } + public IEnumerable SelectedItems { + get { return this.control.listView.SelectedItems.OfType(); } + } + protected BookmarkPadBase() { this.control = new BookmarkPadContent(); @@ -86,11 +90,14 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks }; this.control.listView.KeyDown += delegate(object sender, System.Windows.Input.KeyEventArgs e) { - SDBookmark bm = this.control.listView.SelectedItem as SDBookmark; - if (bm == null) return; + var selectedItems = this.SelectedItems.ToList(); + if (!selectedItems.Any()) + return; switch (e.Key) { case System.Windows.Input.Key.Delete: - SD.BookmarkManager.RemoveMark(bm); + foreach (var selectedItem in selectedItems) { + SD.BookmarkManager.RemoveMark(selectedItem); + } break; } }; diff --git a/src/Main/Base/Project/Editor/Bookmarks/BookmarkPadToolbarCommands.cs b/src/Main/Base/Project/Editor/Bookmarks/BookmarkPadToolbarCommands.cs index 7158e769ad..6a38a06b50 100644 --- a/src/Main/Base/Project/Editor/Bookmarks/BookmarkPadToolbarCommands.cs +++ b/src/Main/Base/Project/Editor/Bookmarks/BookmarkPadToolbarCommands.cs @@ -67,8 +67,11 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks public override void Run() { BookmarkPadBase pad = (BookmarkPadBase)this.Owner; - if (pad.SelectedItem != null) { - SD.BookmarkManager.RemoveMark(pad.SelectedItem); + var selectedItems = pad.SelectedItems.ToList(); + if (selectedItems.Any()) { + foreach (var selectedItem in selectedItems) { + SD.BookmarkManager.RemoveMark(selectedItem); + } } } }