From 50dc91beffc67f1c37aeba622862c3299d2819d5 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Wed, 19 Jun 2019 10:40:30 -0400 Subject: [Debugger] Modernize the BreakpointPad code a bit --- .../MonoDevelop.Debugger/BreakpointPad.cs | 123 +++++++++------------ 1 file changed, 53 insertions(+), 70 deletions(-) (limited to 'main/src/addins') diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs index d42a15d8bd..40b79833c5 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs @@ -25,20 +25,21 @@ using Gtk; using System; +using System.ComponentModel; using Stock = MonoDevelop.Ide.Gui.Stock; +using Mono.Debugging.Client; + +using MonoDevelop.Ide; using MonoDevelop.Core; using MonoDevelop.Ide.Gui; using MonoDevelop.Ide.Commands; using MonoDevelop.Components; using MonoDevelop.Components.Commands; -using Mono.Debugging.Client; using MonoDevelop.Components.Docking; using MonoDevelop.Ide.Gui.Components; -using MonoDevelop.Ide; using MonoDevelop.Components.AutoTest; -using System.ComponentModel; namespace MonoDevelop.Debugger { @@ -79,7 +80,7 @@ namespace MonoDevelop.Debugger // Toolbar and menu definitions gotoCmd = new ActionCommand (LocalCommands.GoToFile, GettextCatalog.GetString ("Go to Breakpoint")); - ActionCommand propertiesCmd = new ActionCommand (LocalCommands.Properties, GettextCatalog.GetString ("Edit Breakpoint…"), Stock.Properties); + var propertiesCmd = new ActionCommand (LocalCommands.Properties, GettextCatalog.GetString ("Edit Breakpoint…"), Stock.Properties); // The toolbar registers the Properties command with the CommandManager for us, // but gotoCmd isn't used in the toolbar so we need to register it ourselves for the menu to work @@ -95,7 +96,7 @@ namespace MonoDevelop.Debugger menuSet.AddItem (EditCommands.DeleteKey); menuSet.AddItem (DebugCommands.ClearAllBreakpoints); - CommandEntrySet toolbarSet = new CommandEntrySet (); + var toolbarSet = new CommandEntrySet (); toolbarSet.AddItem (DebugCommands.EnableDisableBreakpoint); toolbarSet.AddItem (DebugCommands.ClearAllBreakpoints); toolbarSet.AddItem (DebugCommands.DisableAllBreakpoints); @@ -109,7 +110,7 @@ namespace MonoDevelop.Debugger // The breakpoint list store = new TreeStore (typeof(string), typeof (bool), typeof(string), typeof(object), typeof(string), typeof(string), typeof(string), typeof(string)); - SemanticModelAttribute modelAttr = new SemanticModelAttribute ("store__Icon", "store__Selected","store_FileName", + var modelAttr = new SemanticModelAttribute ("store__Icon", "store__Selected","store_FileName", "store_Breakpoint", "store_Condition", "store_TraceExp", "store_HitCount", "store_LastTrace"); TypeDescriptor.AddAttributes (store, modelAttr); @@ -123,21 +124,21 @@ namespace MonoDevelop.Debugger treeState = new TreeViewState (tree, (int) Columns.Breakpoint); - TreeViewColumn col = new TreeViewColumn (); - CellRenderer crp = new CellRendererImage (); + var col = new TreeViewColumn (); + var crp = new CellRendererImage (); col.PackStart (crp, false); col.AddAttribute (crp, "stock_id", (int) Columns.Icon); tree.AppendColumn (col); - - Gtk.CellRendererToggle toggleRender = new Gtk.CellRendererToggle (); + + var toggleRender = new Gtk.CellRendererToggle (); toggleRender.Toggled += new ToggledHandler (ItemToggled); col = new TreeViewColumn (); col.PackStart (toggleRender, false); col.AddAttribute (toggleRender, "active", (int) Columns.Selected); tree.AppendColumn (col); - - TreeViewColumn FrameCol = new TreeViewColumn (); - CellRenderer crt = tree.TextRenderer; + + var FrameCol = new TreeViewColumn (); + var crt = tree.TextRenderer; FrameCol.Title = GettextCatalog.GetString ("Name"); FrameCol.PackStart (crt, true); FrameCol.AddAttribute (crt, "text", (int) Columns.FileName); @@ -180,7 +181,7 @@ namespace MonoDevelop.Debugger tree.RowActivated += OnRowActivated; - DockItemToolbar toolbar = window.GetToolbar (DockPositionType.Top); + var toolbar = window.GetToolbar (DockPositionType.Top); toolbar.Add (toolbarSet, sw); toolbar.ShowAll (); } @@ -209,10 +210,9 @@ namespace MonoDevelop.Debugger protected void OnProperties () { var selected = tree.Selection.GetSelectedRows (); - TreeIter iter; - if (selected.Length == 1 && store.GetIter (out iter, selected[0])) { - BreakEvent bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); + if (selected.Length == 1 && store.GetIter (out TreeIter iter, selected[0])) { + var bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); if (DebuggingService.ShowBreakpointProperties (ref bp)) UpdateDisplay (); } @@ -220,11 +220,10 @@ namespace MonoDevelop.Debugger string GetIconId (BreakEvent bp) { - if (bp is Catchpoint) { + if (bp is Catchpoint) return bp.Enabled ? "md-catchpoint" : "md-catchpoint-disabled"; - } else { - return bp.Enabled ? "md-breakpoint" : "md-breakpoint-disabled"; - } + + return bp.Enabled ? "md-breakpoint" : "md-breakpoint-disabled"; } @@ -238,12 +237,10 @@ namespace MonoDevelop.Debugger // If any breakpoints are disabled, we'll enable them all. Otherwise, disable them all. foreach (var path in tree.Selection.GetSelectedRows ()) { - TreeIter iter; - - if (!store.GetIter (out iter, path)) + if (!store.GetIter (out TreeIter iter, path)) continue; - BreakEvent bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); + var bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); if (!bp.Enabled) { enable = true; break; @@ -251,12 +248,10 @@ namespace MonoDevelop.Debugger } foreach (var path in tree.Selection.GetSelectedRows ()) { - TreeIter iter; - - if (!store.GetIter (out iter, path)) + if (!store.GetIter (out TreeIter iter, path)) continue; - BreakEvent bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); + var bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); bp.Enabled = enable; store.SetValue (iter, (int) Columns.Icon, GetIconId(bp)); @@ -271,15 +266,12 @@ namespace MonoDevelop.Debugger protected void OnBpJumpTo () { var selected = tree.Selection.GetSelectedRows (); - TreeIter iter; - if (selected.Length == 1 && store.GetIter (out iter, selected[0])) { + if (selected.Length == 1 && store.GetIter (out TreeIter iter, selected[0])) { var be = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); - var bp = be as Breakpoint; - if (bp != null) { - if (!string.IsNullOrEmpty (bp.FileName)) - IdeApp.Workbench.OpenDocument (bp.FileName, null, bp.Line, 1).Ignore (); - } + + if (be is Breakpoint bp && !string.IsNullOrEmpty (bp.FileName)) + IdeApp.Workbench.OpenDocument (bp.FileName, null, bp.Line, 1).Ignore (); } } @@ -296,9 +288,7 @@ namespace MonoDevelop.Debugger Array.Sort (selected, new TreePathComparer (true)); foreach (var path in selected) { - TreeIter iter; - - if (!store.GetIter (out iter, path)) + if (!store.GetIter (out TreeIter iter, path)) continue; var bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); @@ -316,9 +306,7 @@ namespace MonoDevelop.Debugger [CommandUpdateHandler (EditCommands.SelectAll)] protected void UpdateSelectAll (CommandInfo cmd) { - TreeIter iter; - - cmd.Enabled = store.GetIterFirst (out iter); + cmd.Enabled = store.GetIterFirst (out TreeIter iter); } [CommandHandler (EditCommands.SelectAll)] @@ -360,12 +348,10 @@ namespace MonoDevelop.Debugger bool enable = false; foreach (var path in tree.Selection.GetSelectedRows ()) { - TreeIter iter; - - if (!store.GetIter (out iter, path)) + if (!store.GetIter (out TreeIter iter, path)) continue; - BreakEvent bp = (BreakEvent)store.GetValue (iter, (int)Columns.Breakpoint); + var bp = (BreakEvent)store.GetValue (iter, (int)Columns.Breakpoint); if (!bp.Enabled) { enable = true; break; @@ -410,12 +396,12 @@ namespace MonoDevelop.Debugger void ItemToggled (object o, ToggledArgs args) { breakpoints.Changed -= OnBreakpointChanged; - + try { TreeIter iter; if (store.GetIterFromString (out iter, args.Path)) { - BreakEvent bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); + var bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); bp.Enabled = !bp.Enabled; store.SetValue (iter, (int) Columns.Icon, GetIconId(bp)); @@ -436,31 +422,30 @@ namespace MonoDevelop.Debugger store.Clear (); if (breakpoints != null) { lock (breakpoints) { - foreach (BreakEvent be in breakpoints.GetBreakevents ()) { + foreach (BreakEvent be in breakpoints) { if (be.NonUserBreakpoint) continue; + string hitCount = be.HitCountMode != HitCountMode.None ? be.CurrentHitCount.ToString () : ""; string traceExp = (be.HitAction & HitAction.PrintExpression) != HitAction.None ? be.TraceExpression : ""; string traceVal = (be.HitAction & HitAction.PrintExpression) != HitAction.None ? be.LastTraceValue : ""; - string name; + string name, condition = null; - var fb = be as FunctionBreakpoint; - var bp = be as Breakpoint; - var cp = be as Catchpoint; - if (fb != null) { + if (be is FunctionBreakpoint fb) { if (fb.ParamTypes != null) name = fb.FunctionName + "(" + string.Join (", ", fb.ParamTypes) + ")"; else name = fb.FunctionName; - } else if (bp != null) { - name = String.Format ("{0}:{1},{2}", bp.FileName, bp.Line, bp.Column); - } else if (cp != null) { + } else if (be is Breakpoint bp) { + name = string.Format ("{0}:{1},{2}", bp.FileName, bp.Line, bp.Column); + condition = bp.ConditionExpression; + } else if (be is Catchpoint cp) { name = cp.ExceptionName; } else { name = ""; } - store.AppendValues (GetIconId (be), be.Enabled, name, be, bp != null ? bp.ConditionExpression : null, traceExp, hitCount, traceVal); + store.AppendValues (GetIconId (be), be.Enabled, name, be, condition, traceExp, hitCount, traceVal); } } } @@ -471,37 +456,35 @@ namespace MonoDevelop.Debugger void OnBreakpointUpdated (object s, BreakpointEventArgs args) { Runtime.RunInMainThread (() => { - TreeIter it; - - if (!store.GetIterFirst (out it)) + if (!store.GetIterFirst (out TreeIter iter)) return; do { - var bp = (BreakEvent) store.GetValue (it, (int) Columns.Breakpoint); + var bp = (BreakEvent) store.GetValue (iter, (int) Columns.Breakpoint); if (bp == args.Breakpoint) { string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : ""; string traceVal = (bp.HitAction & HitAction.PrintExpression) != HitAction.None ? bp.LastTraceValue : ""; - store.SetValue (it, (int) Columns.HitCount, hitCount); - store.SetValue (it, (int) Columns.LastTrace, traceVal); + store.SetValue (iter, (int) Columns.HitCount, hitCount); + store.SetValue (iter, (int) Columns.LastTrace, traceVal); break; } - } while (store.IterNext (ref it)); - }); + } while (store.IterNext (ref iter)); + }).Ignore (); } protected void OnBreakpointAdded (object o, EventArgs args) { - Runtime.RunInMainThread ((System.Action)UpdateDisplay); + Runtime.RunInMainThread ((System.Action) UpdateDisplay).Ignore (); } protected void OnBreakpointRemoved (object o, EventArgs args) { - Runtime.RunInMainThread ((System.Action)UpdateDisplay); + Runtime.RunInMainThread ((System.Action) UpdateDisplay).Ignore (); } protected void OnBreakpointChanged (object o, EventArgs args) { - Runtime.RunInMainThread ((System.Action)UpdateDisplay); + Runtime.RunInMainThread ((System.Action) UpdateDisplay).Ignore (); } void OnDebuggerStatusCheck (object s, EventArgs a) @@ -530,4 +513,4 @@ namespace MonoDevelop.Debugger OnDeleted (); } } -} \ No newline at end of file +} -- cgit v1.2.3