210
213
[CommandHandler (DebugCommands.EnableDisableBreakpoint)]
211
214
protected void OnEnableDisable ()
214
if (tree.Selection.GetSelected (out iter)) {
215
Breakpoint bp = (Breakpoint) store.GetValue (iter, (int) Columns.Breakpoint);
216
bp.Enabled = !bp.Enabled;
216
DebuggingService.Breakpoints.Changed -= breakpointChangedHandler;
221
// If any breakpoints are disabled, we'll enable them all. Otherwise, disable them all.
222
foreach (var path in tree.Selection.GetSelectedRows ()) {
225
if (!store.GetIter (out iter, path))
228
Breakpoint bp = (Breakpoint) store.GetValue (iter, (int) Columns.Breakpoint);
235
foreach (var path in tree.Selection.GetSelectedRows ()) {
238
if (!store.GetIter (out iter, path))
241
Breakpoint bp = (Breakpoint) store.GetValue (iter, (int) Columns.Breakpoint);
244
store.SetValue (iter, (int) Columns.Icon, enable ? "md-breakpoint" : "md-breakpoint-disabled");
245
store.SetValue (iter, (int) Columns.Selected, enable);
248
DebuggingService.Breakpoints.Changed += breakpointChangedHandler;
220
252
[CommandHandler (LocalCommands.GoToFile)]
221
253
protected void OnBpJumpTo ()
255
var selected = tree.Selection.GetSelectedRows ();
224
if (tree.Selection.GetSelected (out iter)) {
258
if (selected.Length == 1 && store.GetIter (out iter, selected[0])) {
225
259
Breakpoint bp = (Breakpoint) store.GetValue (iter, (int) Columns.Breakpoint);
226
260
if (!string.IsNullOrEmpty (bp.FileName))
227
261
IdeApp.Workbench.OpenDocument (bp.FileName, bp.Line, 1);
265
bool DeleteSelectedBreakpoints ()
267
bool deleted = false;
269
DebuggingService.Breakpoints.BreakpointRemoved -= breakpointRemovedHandler;
272
// Note: since we'll be modifying the list of breakpoints, we need to sort
273
// the paths in reverse order.
274
var selected = tree.Selection.GetSelectedRows ();
275
Array.Sort (selected, new TreePathComparer (true));
277
foreach (var path in selected) {
280
if (!store.GetIter (out iter, path))
283
var bp = (Breakpoint) store.GetValue (iter, (int) Columns.Breakpoint);
288
DebuggingService.Breakpoints.BreakpointRemoved += breakpointRemovedHandler;
294
[CommandUpdateHandler (EditCommands.SelectAll)]
295
protected void UpdateSelectAll (CommandInfo cmd)
299
cmd.Enabled = store.GetIterFirst (out iter);
302
[CommandHandler (EditCommands.SelectAll)]
303
protected void OnSelectAll ()
305
tree.Selection.SelectAll ();
231
308
[CommandHandler (EditCommands.Delete)]
232
309
[CommandHandler (EditCommands.DeleteKey)]
233
310
protected void OnDeleted ()
236
if (tree.Selection.GetSelected (out iter)) {
237
Breakpoint bp = (Breakpoint) store.GetValue (iter, (int) Columns.Breakpoint);
312
if (DeleteSelectedBreakpoints ())
316
[CommandUpdateHandler (LocalCommands.GoToFile)]
317
[CommandUpdateHandler (LocalCommands.Properties)]
318
protected void UpdateBpCommand (CommandInfo cmd)
320
cmd.Enabled = tree.Selection.CountSelectedRows () == 1;
242
323
[CommandUpdateHandler (EditCommands.Delete)]
243
324
[CommandUpdateHandler (EditCommands.DeleteKey)]
244
[CommandUpdateHandler (LocalCommands.GoToFile)]
245
[CommandUpdateHandler (LocalCommands.Properties)]
246
325
[CommandUpdateHandler (DebugCommands.EnableDisableBreakpoint)]
247
protected void UpdateBpCommand (CommandInfo cmd)
250
cmd.Enabled = tree.Selection.GetSelected (out iter);
326
protected void UpdateMultiBpCommand (CommandInfo cmd)
328
cmd.Enabled = tree.Selection.CountSelectedRows () > 0;
332
void OnKeyPressEvent (object sender, KeyPressEventArgs args)
334
// Delete the currently selected breakpoint(s) with any delete key
335
switch (args.Event.Key) {
337
case Gdk.Key.KP_Delete:
338
case Gdk.Key.BackSpace:
339
if (DeleteSelectedBreakpoints ()) {
345
if (tree.Selection.CountSelectedRows () > 0) {
253
private void ItemToggled (object o, ToggledArgs args)
353
void ItemToggled (object o, ToggledArgs args)
256
if (store.GetIterFromString(out iter, args.Path)) {
257
bool val = (bool) store.GetValue(iter, (int)Columns.Selected);
258
Breakpoint bp = (Breakpoint) store.GetValue (iter, (int) Columns.Breakpoint);
259
store.SetValue (iter, (int)Columns.Selected, !val);
260
bp.Enabled = !bp.Enabled;
355
DebuggingService.Breakpoints.Changed -= breakpointChangedHandler;
360
if (store.GetIterFromString (out iter, args.Path)) {
361
Breakpoint bp = (Breakpoint) store.GetValue (iter, (int) Columns.Breakpoint);
362
bp.Enabled = !bp.Enabled;
364
store.SetValue (iter, (int) Columns.Icon, bp.Enabled ? "md-breakpoint" : "md-breakpoint-disabled");
365
store.SetValue (iter, (int) Columns.Selected, bp.Enabled);
368
DebuggingService.Breakpoints.Changed += breakpointChangedHandler;
264
372
public void UpdateDisplay ()
375
tree.ScrollToPoint (0, 0);
266
377
treeState.Save ();
269
380
if (bps != null) {
270
381
foreach (Breakpoint bp in bps.GetBreakpoints ()) {
382
string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : "";
271
383
string traceExp = bp.HitAction == HitAction.PrintExpression ? bp.TraceExpression : "";
272
384
string traceVal = bp.HitAction == HitAction.PrintExpression ? bp.LastTraceValue : "";
273
string hitCount = bp.HitCount > 0 ? bp.HitCount.ToString () : "";
276
387
if (bp is FunctionBreakpoint) {