diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/JavaDebugProcess.java b/java/debugger/impl/src/com/intellij/debugger/engine/JavaDebugProcess.java
index 36aff625f280..b65f977ede75 100644
--- a/java/debugger/impl/src/com/intellij/debugger/engine/JavaDebugProcess.java
+++ b/java/debugger/impl/src/com/intellij/debugger/engine/JavaDebugProcess.java
@@ -321,8 +321,9 @@ public class JavaDebugProcess extends XDebugProcess {
leftToolbar.add(ActionManager.getInstance().getAction(DebuggerActions.DUMP_THREADS), beforeRunner);
leftToolbar.add(Separator.getInstance(), beforeRunner);
- settings.addAction(new AutoVarsSwitchAction(), Constraints.FIRST);
- settings.addAction(new WatchLastMethodReturnValueAction(), Constraints.FIRST);
+ Constraints beforeSort = new Constraints(Anchor.BEFORE, "XDebugger.ToggleSortValues");
+ settings.addAction(new WatchLastMethodReturnValueAction(), beforeSort);
+ settings.addAction(new AutoVarsSwitchAction(), beforeSort);
}
private static class AutoVarsSwitchAction extends ToggleAction {
diff --git a/platform/platform-resources-en/src/messages/ActionsBundle.properties b/platform/platform-resources-en/src/messages/ActionsBundle.properties
index 8afc312c8303..f453a681c7d1 100644
--- a/platform/platform-resources-en/src/messages/ActionsBundle.properties
+++ b/platform/platform-resources-en/src/messages/ActionsBundle.properties
@@ -982,11 +982,11 @@ action.XDebugger.NewWatch.text=New Watch...
action.XDebugger.EditWatch.text=Edit...
action.XDebugger.AutoTooltip.text=Value auto tooltip
action.XDebugger.AutoTooltip.description=Toggles if value tooltip is shown automatically on mouse over
-action.XDebugger.Inline.text=Show values in editor
+action.XDebugger.Inline.text=Show Values Inline
action.XDebugger.Inline.description=Show available debugger session values inside editor
action.XDebugger.AutoTooltipOnSelection.text=Show value on selection change
action.XDebugger.AutoTooltipOnSelection.description=Toggles if value tooltip is shown automatically on selection change in editor
-action.XDebugger.ToggleSortValues.text=Sort values alphabetically
+action.XDebugger.ToggleSortValues.text=Sort Values Alphabetically
action.XDebugger.ToggleSortValues.description=Sort values alphabetically in debugger views
group.XDebugger.settings.text=Settings
@@ -1020,7 +1020,7 @@ action.Debugger.MarkObject.unmark.text=Unmark Object
action.Debugger.MarkObject.description=Mark/unmark the object so that it can be visually distinguished in in debugger views
action.Debugger.AddToWatch.text=Add to Watches
action.Debugger.EvaluateInConsole.text=Evaluate in Console
-action.Debugger.UnmuteOnStop.text=Unmute breakpoints on session finish
+action.XDebugger.UnmuteOnStop.text=Unmute Breakpoints on Session Finish
action.Debugger.AutoRenderer.text=Auto
group.EditorPopupMenu.text=Editor Popup Menu
group.EditorPopupMenu.description=Editor Popup Menu
diff --git a/platform/platform-resources-en/src/messages/XDebuggerBundle.properties b/platform/platform-resources-en/src/messages/XDebuggerBundle.properties
index 7a7d8c67f0d5..cfeb8209caa7 100644
--- a/platform/platform-resources-en/src/messages/XDebuggerBundle.properties
+++ b/platform/platform-resources-en/src/messages/XDebuggerBundle.properties
@@ -128,3 +128,6 @@ setting.focus.app.on.breakpoint.label=Focus application on breakpoint
settings.show.window.label=Show &debug window on breakpoint
showReferring.dialog.title=Referring Objects For {0}
+settings.show.values.inline=Show values inline
+settings.show.value.tooltip=Show value tooltip.
+settings.show.tooltip.on.selection=Show value tooltip on code selection
diff --git a/platform/platform-resources/src/idea/LangActions.xml b/platform/platform-resources/src/idea/LangActions.xml
index 3f8edd619620..36671e305f56 100644
--- a/platform/platform-resources/src/idea/LangActions.xml
+++ b/platform/platform-resources/src/idea/LangActions.xml
@@ -794,10 +794,13 @@
-
-
-
+
+
+
+
+
+
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DataViewsConfigurableUi.form b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DataViewsConfigurableUi.form
index a6e3f94f3bec..005e5aed54e3 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DataViewsConfigurableUi.form
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DataViewsConfigurableUi.form
@@ -13,25 +13,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -39,12 +23,62 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DataViewsConfigurableUi.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DataViewsConfigurableUi.java
index 76645db3a3d3..1b220e800a00 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DataViewsConfigurableUi.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/settings/DataViewsConfigurableUi.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,17 +15,28 @@
*/
package com.intellij.xdebugger.impl.settings;
+import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtilRt;
+import com.intellij.ui.IdeBorderFactory;
+import com.intellij.ui.border.IdeaTitledBorder;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
public class DataViewsConfigurableUi {
+ public static final String IDE_DEBUGGER_INLINE_KEY = "ide.debugger.inline";
+ public static final String DEBUGGER_VALUE_TOOLTIP_AUTO_SHOW_KEY = "debugger.valueTooltipAutoShow";
+ public static final String DEBUGGER_VALUE_TOOLTIP_AUTO_SHOW_ON_SELECTION_KEY = "debugger.valueTooltipAutoShowOnSelection";
+
private JCheckBox enableAutoExpressionsCheckBox;
private JFormattedTextField valueTooltipDelayTextField;
private JPanel panel;
private JCheckBox sortAlphabeticallyCheckBox;
+ private JPanel myEditorSettingsPanel;
+ private JCheckBox myShowValuesInlineCheckBox;
+ private JCheckBox myShowValueTooltipCheckBox;
+ private JCheckBox myShowValueTooltipOnCheckBox;
public DataViewsConfigurableUi() {
UIUtil.configureNumericFormattedTextField(valueTooltipDelayTextField);
@@ -33,7 +44,8 @@ public class DataViewsConfigurableUi {
private int getValueTooltipDelay() {
Object value = valueTooltipDelayTextField.getValue();
- return value instanceof Number ? ((Number)value).intValue() : StringUtilRt.parseInt((String)value, XDebuggerDataViewSettings.DEFAULT_VALUE_TOOLTIP_DELAY);
+ return value instanceof Number ? ((Number)value).intValue() :
+ StringUtilRt.parseInt((String)value, XDebuggerDataViewSettings.DEFAULT_VALUE_TOOLTIP_DELAY);
}
@NotNull
@@ -44,18 +56,34 @@ public class DataViewsConfigurableUi {
public boolean isModified(@NotNull XDebuggerDataViewSettings settings) {
return getValueTooltipDelay() != settings.getValueLookupDelay() ||
sortAlphabeticallyCheckBox.isSelected() != settings.isSortValues() ||
- enableAutoExpressionsCheckBox.isSelected() != settings.isAutoExpressions();
+ enableAutoExpressionsCheckBox.isSelected() != settings.isAutoExpressions() ||
+ myShowValuesInlineCheckBox.isSelected() != Registry.is(IDE_DEBUGGER_INLINE_KEY) ||
+ myShowValuesInlineCheckBox.isSelected() != Registry.is(DEBUGGER_VALUE_TOOLTIP_AUTO_SHOW_KEY) ||
+ myShowValueTooltipOnCheckBox.isSelected() != Registry.is(DEBUGGER_VALUE_TOOLTIP_AUTO_SHOW_ON_SELECTION_KEY);
}
public void reset(@NotNull XDebuggerDataViewSettings settings) {
valueTooltipDelayTextField.setValue(settings.getValueLookupDelay());
sortAlphabeticallyCheckBox.setSelected(settings.isSortValues());
enableAutoExpressionsCheckBox.setSelected(settings.isAutoExpressions());
+ myShowValuesInlineCheckBox.setSelected(Registry.is(IDE_DEBUGGER_INLINE_KEY));
+ myShowValueTooltipCheckBox.setSelected(Registry.is(DEBUGGER_VALUE_TOOLTIP_AUTO_SHOW_KEY));
+ myShowValueTooltipOnCheckBox.setSelected(Registry.is(DEBUGGER_VALUE_TOOLTIP_AUTO_SHOW_ON_SELECTION_KEY));
}
public void apply(@NotNull XDebuggerDataViewSettings settings) {
settings.setValueLookupDelay(getValueTooltipDelay());
settings.setSortValues(sortAlphabeticallyCheckBox.isSelected());
settings.setAutoExpressions(enableAutoExpressionsCheckBox.isSelected());
+ Registry.get(IDE_DEBUGGER_INLINE_KEY).setValue(myShowValuesInlineCheckBox.isSelected());
+ Registry.get(DEBUGGER_VALUE_TOOLTIP_AUTO_SHOW_KEY).setValue(myShowValueTooltipCheckBox.isSelected());
+ Registry.get(DEBUGGER_VALUE_TOOLTIP_AUTO_SHOW_ON_SELECTION_KEY).setValue(myShowValueTooltipOnCheckBox.isSelected());
+ }
+
+ private void createUIComponents() {
+ myEditorSettingsPanel = new JPanel();
+ IdeaTitledBorder titledBorder = IdeBorderFactory.createTitledBorder("Editor", false);
+ myEditorSettingsPanel.setBorder(titledBorder);
+ titledBorder.acceptMinimumSize(myEditorSettingsPanel);
}
}
\ No newline at end of file
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java
index 349b64742446..b35b150c82f3 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java
@@ -267,16 +267,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
final AnAction[] commonSettings = myUi.getOptions().getSettingsActionsList();
DefaultActionGroup settings = new DefaultActionGroup(ActionsBundle.message("group.XDebugger.settings.text"), true);
settings.getTemplatePresentation().setIcon(myUi.getOptions().getSettingsActions().getTemplatePresentation().getIcon());
- if (commonSettings.length > 0) {
- for (AnAction each : commonSettings) {
- settings.add(each);
- }
- settings.addSeparator();
- }
- if (!session.getDebugProcess().isValuesCustomSorted()) {
- settings.add(new ToggleSortValuesAction(commonSettings.length == 0));
- }
-
+ settings.addAll(commonSettings);
leftToolbar.add(settings);
leftToolbar.addSeparator();
@@ -316,7 +307,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
}
@Override
- public void update(AnActionEvent e) {
+ public void update(@NotNull AnActionEvent e) {
super.update(e);
if (!myShowIcon) {
e.getPresentation().setIcon(null);
diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/SortValuesToggleAction.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/SortValuesToggleAction.java
index e399dbd96eba..3adade0fedb2 100644
--- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/SortValuesToggleAction.java
+++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/actions/SortValuesToggleAction.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,13 +18,23 @@ package com.intellij.xdebugger.impl.ui.tree.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.ToggleAction;
import com.intellij.openapi.project.DumbAware;
+import com.intellij.xdebugger.XDebugSession;
import com.intellij.xdebugger.impl.XDebuggerUtilImpl;
import com.intellij.xdebugger.impl.settings.XDebuggerSettingsManager;
+import org.jetbrains.annotations.NotNull;
/**
* @author nik
*/
public class SortValuesToggleAction extends ToggleAction implements DumbAware {
+
+ @Override
+ public void update(@NotNull AnActionEvent e) {
+ super.update(e);
+ XDebugSession session = XDebugSession.DATA_KEY.getData(e.getDataContext());
+ e.getPresentation().setEnabledAndVisible(session != null && !session.getDebugProcess().isValuesCustomSorted());
+ }
+
@Override
public boolean isSelected(AnActionEvent e) {
return XDebuggerSettingsManager.getInstanceImpl().getDataViewSettings().isSortValues();
diff --git a/resources-en/src/messages/DebuggerBundle.properties b/resources-en/src/messages/DebuggerBundle.properties
index 929447158cd4..dfc2a108eaea 100644
--- a/resources-en/src/messages/DebuggerBundle.properties
+++ b/resources-en/src/messages/DebuggerBundle.properties
@@ -441,7 +441,7 @@ action.show.watches.description=Shows or hides 'watches' pane
action.show.watches.text.hide=Hide Watches
action.show.watches.text.show=Show Watches
action.watch.method.return.value.description=Enables watching last executed method return value
-action.watches.method.return.value.enable=Watch method return values
+action.watches.method.return.value.enable=Show Method Return Values
action.watches.method.return.value.disable=Stop watching method return values
action.watches.method.return.value.unavailable.reason=Feature is not supported by the target VM
action.auto.variables.mode=Auto-Variables Mode