diff --git a/data/resources/image/BitmapResources/BitmapResources.res b/data/resources/image/BitmapResources/BitmapResources.res index bdbd26b684..ed0420149a 100644 --- a/data/resources/image/BitmapResources/BitmapResources.res +++ b/data/resources/image/BitmapResources/BitmapResources.res @@ -333,8 +333,10 @@ Bookmarks.DeleteAllMarks = Bookmarks\DeleteAllMarks.png Bookmarks.EnableDisableAll = Bookmarks\EnableDisableAll.png Bookmarks.EnableDisableMark = Bookmarks\EnableDisableMark.png Bookmarks.Breakpoint = Bookmarks\Breakpoint.png +Bookmarks.BreakpointConditional = Bookmarks\BreakpointConditional.png Bookmarks.DisabledBreakpoint = Bookmarks\DisabledBreakpoint.png Bookmarks.UnhealthyBreakpoint = Bookmarks\UnhealthyBreakpoint.png +Bookmarks.UnhealthyBreakpointConditional = Bookmarks\UnhealthyBreakpointConditional.png Bookmarks.CurrentLine = Bookmarks\CurrentLine.png #backend icons diff --git a/data/resources/image/BitmapResources/Bookmarks/BreakpointConditional.png b/data/resources/image/BitmapResources/Bookmarks/BreakpointConditional.png new file mode 100644 index 0000000000..0d41ebfedc Binary files /dev/null and b/data/resources/image/BitmapResources/Bookmarks/BreakpointConditional.png differ diff --git a/data/resources/image/BitmapResources/Bookmarks/UnhealthyBreakpointConditional.png b/data/resources/image/BitmapResources/Bookmarks/UnhealthyBreakpointConditional.png new file mode 100644 index 0000000000..3519f7e641 Binary files /dev/null and b/data/resources/image/BitmapResources/Bookmarks/UnhealthyBreakpointConditional.png differ diff --git a/src/Main/Base/Project/Src/Services/Debugger/BreakpointBookmark.cs b/src/Main/Base/Project/Src/Services/Debugger/BreakpointBookmark.cs index 7cd8fddbc8..1aedbe0366 100644 --- a/src/Main/Base/Project/Src/Services/Debugger/BreakpointBookmark.cs +++ b/src/Main/Base/Project/Src/Services/Debugger/BreakpointBookmark.cs @@ -41,8 +41,15 @@ namespace ICSharpCode.SharpDevelop.Debugging } public BreakpointAction Action { - get { return action; } - set { this.action = value; } + get { + return action; + } + set { + if (action != value) { + action = value; + Redraw(); + } + } } public virtual bool IsHealthy { @@ -86,17 +93,19 @@ namespace ICSharpCode.SharpDevelop.Debugging } public static readonly IImage BreakpointImage = new ResourceServiceImage("Bookmarks.Breakpoint"); + public static readonly IImage BreakpointConditionalImage = new ResourceServiceImage("Bookmarks.BreakpointConditional"); public static readonly IImage DisabledBreakpointImage = new ResourceServiceImage("Bookmarks.DisabledBreakpoint"); public static readonly IImage UnhealthyBreakpointImage = new ResourceServiceImage("Bookmarks.UnhealthyBreakpoint"); + public static readonly IImage UnhealthyBreakpointConditionalImage = new ResourceServiceImage("Bookmarks.UnhealthyBreakpointConditional"); public override IImage Image { get { if (!this.IsEnabled) return DisabledBreakpointImage; else if (this.IsHealthy) - return BreakpointImage; + return this.Action == BreakpointAction.Break ? BreakpointImage : BreakpointConditionalImage; else - return UnhealthyBreakpointImage; + return this.Action == BreakpointAction.Break ? UnhealthyBreakpointImage : UnhealthyBreakpointConditionalImage; } } diff --git a/src/Main/Base/Project/Src/Util/ExtensionMethods.cs b/src/Main/Base/Project/Src/Util/ExtensionMethods.cs index 0a00f553d3..e2721c6e94 100644 --- a/src/Main/Base/Project/Src/Util/ExtensionMethods.cs +++ b/src/Main/Base/Project/Src/Util/ExtensionMethods.cs @@ -403,6 +403,7 @@ namespace ICSharpCode.SharpDevelop } else { r.Click += delegate { item.PerformClick(); }; } + r.IsChecked = item.Checked; return r; } diff --git a/src/Main/StartUp/Project/Resources/BitmapResources.resources b/src/Main/StartUp/Project/Resources/BitmapResources.resources index 1d2a698d66..9fa8d0de13 100644 Binary files a/src/Main/StartUp/Project/Resources/BitmapResources.resources and b/src/Main/StartUp/Project/Resources/BitmapResources.resources differ