From 3473e15120d1256602c5031c50fa80ea882fce05 Mon Sep 17 00:00:00 2001 From: Rejean Loyer Date: Sat, 7 Sep 2013 11:36:55 -0400 Subject: [PATCH] ide;debugger; improved AdjustDebugMenus code. --- ide/src/designer/CodeEditor.ec | 29 +++++++++++-------- ide/src/dialogs/NewProjectDialog.ec | 2 +- ide/src/ide.ec | 55 +++++++++++++++++++++---------------- 3 files changed, 50 insertions(+), 36 deletions(-) diff --git a/ide/src/designer/CodeEditor.ec b/ide/src/designer/CodeEditor.ec index 3fdab7b..8e4a06e 100644 --- a/ide/src/designer/CodeEditor.ec +++ b/ide/src/designer/CodeEditor.ec @@ -2128,7 +2128,7 @@ class CodeEditor : Window */ if(active && directActivation) { - AdjustDebugMenus(ide.areDebugMenusUnavailable, ide.isBreakpointTogglingUnavailable, ide.isDebuggerExecuting, ide.isDebuggerStopped); + AdjustDebugMenus(); if(openedFileInfo) openedFileInfo.Activate(); if(designer) @@ -2449,19 +2449,24 @@ class CodeEditor : Window return false; } - void AdjustDebugMenus(bool unavailable, bool bpNoToggle, bool executing, bool stopped) + void AdjustDebugMenus() { - debugRunToCursor.disabled = unavailable || executing; - debugSkipRunToCursor.disabled = unavailable || executing; - debugRunToCursorAtSameLevel.disabled = unavailable || !stopped; - debugSkipRunToCursorAtSameLevel.disabled = unavailable || !stopped; + bool unavailable = ide.areDebugMenusUnavailable; + bool isNotNotRunning = unavailable || ide.isDebuggerRunning; + bool isNotStopped = unavailable || !ide.isDebuggerStopped; + bool noBreakpointToggle = ide.isBreakpointTogglingUnavailable; + + debugRunToCursor.disabled = isNotNotRunning; + debugSkipRunToCursor.disabled = isNotNotRunning; + debugRunToCursorAtSameLevel.disabled = isNotStopped; + debugSkipRunToCursorAtSameLevel.disabled = isNotStopped; #if 0 - debugBpRunToCursor.disabled = unavailable || executing; - debugBpSkipRunToCursor.disabled = unavailable || executing; - debugBpRunToCursorAtSameLevel.disabled = unavailable || !stopped; - debugBpSkipRunToCursorAtSameLevel.disabled = unavailable || !stopped; + debugBpRunToCursor.disabled = isNotNotRunning; + debugBpSkipRunToCursor.disabled = isNotNotRunning; + debugBpRunToCursorAtSameLevel.disabled = isNotStopped; + debugBpSkipRunToCursorAtSameLevel.disabled = isNotStopped; #endif - debugToggleBreakpoint.disabled = bpNoToggle; + debugToggleBreakpoint.disabled = noBreakpointToggle; } CodeEditor() @@ -2481,7 +2486,7 @@ class CodeEditor : Window designer.fileName = title; } - AdjustDebugMenus(ide.areDebugMenusUnavailable, ide.isBreakpointTogglingUnavailable, ide.isDebuggerExecuting, ide.isDebuggerStopped); + AdjustDebugMenus(); for(c = 0; c < CodeObjectType::enumSize; c++) icons[c] = BitmapResource { iconNames[c], window = this }; diff --git a/ide/src/dialogs/NewProjectDialog.ec b/ide/src/dialogs/NewProjectDialog.ec index 661a4bd..f938355 100644 --- a/ide/src/dialogs/NewProjectDialog.ec +++ b/ide/src/dialogs/NewProjectDialog.ec @@ -515,7 +515,7 @@ class QuickProjectDialog : Window { CodeEditor codeEditor = (CodeEditor)document; ide.projectView.AddFile(project.topNode, fileName, false, false); - codeEditor.AdjustDebugMenus(ide.areDebugMenusUnavailable, ide.isBreakpointTogglingUnavailable, ide.isDebuggerExecuting, ide.isDebuggerStopped); + codeEditor.AdjustDebugMenus(); } } } diff --git a/ide/src/ide.ec b/ide/src/ide.ec index 535f81d..fa2957b 100644 --- a/ide/src/ide.ec +++ b/ide/src/ide.ec @@ -2066,54 +2066,63 @@ class IDEWorkSpace : Window } } property bool isBreakpointTogglingUnavailable { get { return !project; } } - property bool isDebuggerExecuting { get { if(ide.debugger) return ide.debugger.state == running; return false; } } + property bool isDebuggerRunning { get { if(ide.debugger) return ide.debugger.state == running; return false; } } property bool isDebuggerStopped { get { if(ide.debugger) return ide.debugger.state == stopped; return false; } } void AdjustDebugMenus() { bool unavailable = areDebugMenusUnavailable; + bool running = isDebuggerRunning; + bool stopped = isDebuggerStopped; bool active = debugger.isActive; - bool bpNoToggle = isBreakpointTogglingUnavailable; - bool executing = isDebuggerExecuting; - //bool holding = debugger.state == stopped; + bool noBreakpointToggle = !project; - debugStartResumeItem.disabled = unavailable || executing; + bool isNotRunning = unavailable || !running; + bool isNotNotRunning = unavailable || running; + bool isNotStopped = unavailable || !stopped; + bool isNotActive = unavailable || !active; + + debugStartResumeItem.disabled = isNotNotRunning; debugStartResumeItem.text = active ? $"Resume" : $"Start"; debugStartResumeItem.NotifySelect = active ? MenuDebugResume : MenuDebugStart; if(toolBar) { - toolBar.buttonDebugStartResume.disabled = unavailable || executing; + toolBar.buttonDebugStartResume.disabled = isNotNotRunning; toolBar.buttonDebugStartResume.toolTip = active ? $"Resume" : $"Start"; } - debugBreakItem.disabled = unavailable || !executing; - debugStopItem.disabled = unavailable || !active; - debugRestartItem.disabled = unavailable || !active; + debugBreakItem.disabled = isNotRunning; + debugStopItem.disabled = isNotActive; + debugRestartItem.disabled = isNotActive; if(toolBar) { - toolBar.buttonDebugPause.disabled = unavailable || !executing; - toolBar.buttonDebugStop.disabled = unavailable || !active; - toolBar.buttonDebugRestart.disabled = unavailable || !active; + toolBar.buttonDebugPause.disabled = isNotRunning; + toolBar.buttonDebugStop.disabled = isNotActive; + toolBar.buttonDebugRestart.disabled = isNotActive; } - debugStepIntoItem.disabled = unavailable || executing; - debugStepOverItem.disabled = unavailable || executing; - debugSkipStepOverItem.disabled = unavailable || executing; - debugStepOutItem.disabled = unavailable || executing || !active; - debugSkipStepOutItem.disabled = unavailable || executing || !active; + debugStepIntoItem.disabled = isNotNotRunning; + debugStepOverItem.disabled = isNotNotRunning; + debugSkipStepOverItem.disabled = isNotNotRunning; + debugStepOutItem.disabled = isNotStopped; + debugSkipStepOutItem.disabled = isNotStopped; +#if 0 + debugStepUntilItem.disabled = isNotStopped; + debugSkipStepUntilItem.disabled = isNotStopped; +#endif if(toolBar) { - toolBar.buttonDebugStepInto.disabled = unavailable || executing; - toolBar.buttonDebugStepOver.disabled = unavailable || executing; - toolBar.buttonDebugSkipStepOver.disabled = unavailable || executing; - toolBar.buttonDebugStepOut.disabled = unavailable || executing || !active; - //toolBar.buttonDebugSkipStepOutItem.disabled = unavailable || executing; + toolBar.buttonDebugStepInto.disabled = isNotNotRunning; + toolBar.buttonDebugStepOver.disabled = isNotNotRunning; + toolBar.buttonDebugSkipStepOver.disabled = isNotNotRunning; + toolBar.buttonDebugStepOut.disabled = isNotStopped; + //toolBar.buttonDebugSkipStepOutItem.disabled = isNotNotRunning; } if((Designer)GetActiveDesigner()) { CodeEditor codeEditor = ((Designer)GetActiveDesigner()).codeEditor; if(codeEditor) - codeEditor.AdjustDebugMenus(unavailable, bpNoToggle, executing, isDebuggerStopped); + codeEditor.AdjustDebugMenus(); } } -- 1.8.3.1