From f0a95edacea9363a1f96f816176d5bc6e6945668 Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Tue, 1 May 2012 06:45:08 -0700 Subject: [PATCH] Bug 372032 - [reverse] Reverse debug buttons should handle the new debug global toolbar Change-Id: I509928798950ee216d1be340d94aca4a34604af6 Reviewed-on: https://git.eclipse.org/r/5535 Reviewed-by: Pawel Piech IP-Clean: Pawel Piech Tested-by: Pawel Piech --- debug/org.eclipse.cdt.debug.ui/plugin.xml | 213 ++++++++++-------- .../commands/ReverseToggleCommandHandler.java | 16 +- 2 files changed, 136 insertions(+), 93 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml index 97a17808fbd..64a8096db78 100644 --- a/debug/org.eclipse.cdt.debug.ui/plugin.xml +++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml @@ -2158,6 +2158,8 @@ + + - - - + + + + + @@ -2180,11 +2182,11 @@ icon="icons/obj16/reverse_resume.gif" label="%ReverseResume.label" style="push"> - - - + + + + + @@ -2195,11 +2197,11 @@ icon="icons/obj16/reverse_stepinto.gif" label="%ReverseStepInto.label" style="push"> - - - + + + + + @@ -2210,11 +2212,11 @@ icon="icons/obj16/reverse_stepover.gif" label="%ReverseStepOver.label" style="push"> - - - + + + + + @@ -2225,14 +2227,16 @@ icon="icons/obj16/uncall.gif" label="%Uncall.label" style="push"> - - - + + + + + + + - - - + + - + + locationURI="menu:org.eclipse.ui.run?before=threadGroup"> - - - + + @@ -2270,11 +2268,8 @@ icon="icons/obj16/reverse_stepinto.gif" label="%ReverseStepInto.label" style="push"> - - - + + @@ -2285,11 +2280,8 @@ icon="icons/obj16/reverse_stepover.gif" label="%ReverseStepOver.label" style="push"> - - - + + @@ -2300,14 +2292,13 @@ icon="icons/obj16/uncall.gif" label="%Uncall.label" style="push"> - - - + + + + - - - + + @@ -2330,11 +2318,8 @@ icon="icons/obj16/reverse_resume.gif" label="%ReverseResume.label" style="push"> - - - + + @@ -2345,11 +2330,8 @@ icon="icons/obj16/reverse_stepinto.gif" label="%ReverseStepInto.label" style="push"> - - - + + @@ -2360,11 +2342,8 @@ icon="icons/obj16/reverse_stepover.gif" label="%ReverseStepOver.label" style="push"> - - - + + @@ -2375,11 +2354,8 @@ icon="icons/obj16/uncall.gif" label="%Uncall.label" style="push"> - - - + + @@ -2390,26 +2366,84 @@ icon="icons/obj16/start_tracing_obj.gif" label="%StartTracing.name" style="push"> - - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ReverseToggleCommandHandler.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ReverseToggleCommandHandler.java index d6b2e7971e0..dd917d98ddc 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ReverseToggleCommandHandler.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/commands/ReverseToggleCommandHandler.java @@ -127,14 +127,22 @@ public class ReverseToggleCommandHandler extends DebugCommandHandler implements @Override protected void postExecute(IRequest request, Object[] targets) { super.postExecute(request, targets); - // request re-evaluation of property "org.eclipse.cdt.debug.ui.isReverseDebuggingEnabled" new WorkbenchJob("") { //$NON-NLS-1$ @Override public IStatus runInUIThread(IProgressMonitor monitor) { - IEvaluationService exprService = (IEvaluationService) PlatformUI.getWorkbench().getService(IEvaluationService.class); - if (exprService != null) { - exprService.requestEvaluation("org.eclipse.cdt.debug.ui.isReverseDebuggingEnabled"); //$NON-NLS-1$ + // Request re-evaluation of property "org.eclipse.cdt.debug.ui.isReverseDebuggingEnabled" to update + // visibility of reverse stepping commands. + IEvaluationService exprService = (IEvaluationService) PlatformUI.getWorkbench().getService(IEvaluationService.class); + if (exprService != null) { + exprService.requestEvaluation("org.eclipse.cdt.debug.ui.isReverseDebuggingEnabled"); //$NON-NLS-1$ + } + // Refresh reverse toggle commands with the new state of reverse enabled. + // This is in order to keep multiple toggle actions in UI in sync. + ICommandService commandService = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class); + if (commandService != null) { + commandService.refreshElements(REVERSE_TOGGLE_COMMAND_ID, null); } + return Status.OK_STATUS; } }.schedule();