diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java
index 29ca342908a5..b259f4fe85a9 100644
--- a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java
+++ b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java
@@ -137,6 +137,8 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
stepping.add(actionManager.getAction(DebuggerActions.POP_FRAME));
stepping.addSeparator();
stepping.add(actionManager.getAction(DebuggerActions.RUN_TO_CURSOR));
+ stepping.addSeparator();
+ stepping.add(actionManager.getAction(DebuggerActions.EVALUATE_EXPRESSION));
myUi.getOptions().setTopToolbar(stepping, ActionPlaces.DEBUGGER_TOOLBAR);
@@ -168,11 +170,6 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
XDebuggerUIConstants.VARIABLES_TAB_ICON, null);
vars.setCloseable(false);
vars.setAlertIcon(breakpointAlert);
- final DefaultActionGroup varsGroup = new DefaultActionGroup();
- addAction(varsGroup, DebuggerActions.EVALUATE_EXPRESSION);
- varsGroup.add(new WatchLastMethodReturnValueAction());
- varsGroup.add(new AutoVarsSwitchAction());
- vars.setActions(varsGroup, ActionPlaces.DEBUGGER_TOOLBAR, myVariablesPanel.getTree());
myUi.addContent(vars, 0, PlaceInGrid.center, false);
// threads
@@ -301,14 +298,16 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
addAction(group, DebuggerActions.DUMP_THREADS);
group.addSeparator();
- final AnAction[] layout = myUi.getOptions().getLayoutActionsList();
- final AnAction layoutGroup = myUi.getOptions().getLayoutActions();
+ group.add(myUi.getOptions().getLayoutActions());
+
+ final AnAction[] commonSettings = myUi.getOptions().getSettingsActionsList();
+ final AnAction commonSettingsList = myUi.getOptions().getSettingsActions();
final DefaultActionGroup settings = new DefaultActionGroup("DebuggerSettings", true) {
@Override
public void update(AnActionEvent e) {
e.getPresentation().setText(ActionsBundle.message("group.XDebugger.settings.text"));
- e.getPresentation().setIcon(layoutGroup.getTemplatePresentation().getIcon());
+ e.getPresentation().setIcon(commonSettingsList.getTemplatePresentation().getIcon());
}
@Override
@@ -316,12 +315,15 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
return true;
}
};
- for (AnAction each : layout) {
+ for (AnAction each : commonSettings) {
settings.add(each);
}
- if (layout.length > 0) {
+ if (commonSettings.length > 0) {
settings.addSeparator();
}
+ settings.add(new WatchLastMethodReturnValueAction());
+ settings.add(new AutoVarsSwitchAction());
+ settings.addSeparator();
addActionToGroup(settings, XDebuggerActions.AUTO_TOOLTIP);
group.add(settings);
@@ -563,7 +565,7 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos
private final String myMyTextDisable;
public WatchLastMethodReturnValueAction() {
- super("", DebuggerBundle.message("action.watch.method.return.value.description"), WATCH_RETURN_VALUES_ICON);
+ super("", DebuggerBundle.message("action.watch.method.return.value.description"), null);
myWatchesReturnValues = DebuggerSettings.getInstance().WATCH_RETURN_VALUES;
myTextEnable = DebuggerBundle.message("action.watches.method.return.value.enable");
myMyTextDisable = DebuggerBundle.message("action.watches.method.return.value.disable");
diff --git a/platform/lang-api/src/com/intellij/execution/ui/layout/LayoutViewOptions.java b/platform/lang-api/src/com/intellij/execution/ui/layout/LayoutViewOptions.java
index 900d4b929a93..d0faa6782ec0 100644
--- a/platform/lang-api/src/com/intellij/execution/ui/layout/LayoutViewOptions.java
+++ b/platform/lang-api/src/com/intellij/execution/ui/layout/LayoutViewOptions.java
@@ -50,4 +50,6 @@ public interface LayoutViewOptions {
LayoutViewOptions setAdditionalFocusActions(ActionGroup group);
+ AnAction getSettingsActions();
+ AnAction[] getSettingsActionsList();
}
\ No newline at end of file
diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java
index e31d8a32d3cd..f256405b29e1 100644
--- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java
+++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java
@@ -69,6 +69,7 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac
QuickActionProvider, DockContainer.Dialog {
@NonNls public static final String LAYOUT = "Runner.Layout";
+ @NonNls public static final String SETTINGS = "XDebugger.Settings";
@NonNls public static final String VIEW_POPUP = "Runner.View.Popup";
@NonNls public static final String VIEW_TOOLBAR = "Runner.View.Toolbar";
@@ -690,6 +691,10 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac
}
}
+ public ActionGroup getSettingsActions() {
+ return (ActionGroup)myActionManager.getAction(SETTINGS);
+ }
+
private static void moveFollowingTabs(int index, final JBRunnerTabs tabs) {
for (TabInfo info : tabs.getTabs()) {
final TabImpl tab = getTabFor(info);
diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java
index 3560b1c25a17..584d919fb087 100644
--- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java
+++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java
@@ -293,6 +293,16 @@ public class RunnerLayoutUiImpl implements Disposable, RunnerLayoutUi, LayoutSta
return this;
}
+ @Override
+ public AnAction getSettingsActions() {
+ return myContentUI.getSettingsActions();
+ }
+
+ public AnAction[] getSettingsActionsList() {
+ final ActionGroup group = (ActionGroup)getSettingsActions();
+ return group.getChildren(null);
+ }
+
public Content[] getContents() {
Content[] contents = new Content[getContentManager().getContentCount()];
for (int i = 0; i < contents.length; i++) {
diff --git a/platform/platform-resources/src/idea/LangActions.xml b/platform/platform-resources/src/idea/LangActions.xml
index 55c7d4b531c0..b3689548f07b 100644
--- a/platform/platform-resources/src/idea/LangActions.xml
+++ b/platform/platform-resources/src/idea/LangActions.xml
@@ -671,7 +671,7 @@
-
+
@@ -726,12 +726,15 @@
-
-
-
-
-
+
+
+
+
+
+
+