IDEA-121775 XDebugger: merge Watches and Variables in one view - do not evaluate...
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Fri, 18 Mar 2016 11:03:25 +0000 (14:03 +0300)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Fri, 18 Mar 2016 11:04:04 +0000 (14:04 +0300)
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesViewImpl.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/WatchNodeImpl.java

index a054592fd78c2c2dd38841db668e0f84212f794e..516b4468e99ed5e92068d925e3b3f1c84002cad1 100644 (file)
@@ -300,14 +300,11 @@ public class XWatchesViewImpl extends XVariablesView implements DnDNativeTarget,
 
   @Override
   public void processSessionEvent(@NotNull final SessionEvent event) {
-    if (myWatchesInVariables ||
-        getPanel().isShowing() ||
-        ApplicationManager.getApplication().isUnitTestMode()) {
+    if (getPanel().isShowing() || ApplicationManager.getApplication().isUnitTestMode()) {
       myRebuildNeeded = false;
     }
     else {
       myRebuildNeeded = true;
-      return;
     }
     super.processSessionEvent(event);
   }
index 9a2e1dbaec1a9aeeff5148ec3078d3b84e3d0182..43266062a9f3f69785d7268439c37808112ad21f 100644 (file)
@@ -121,8 +121,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
       @Override
       public void selectionChanged(ContentManagerEvent event) {
         Content content = event.getContent();
-        XDebugSessionImpl session = mySession;
-        if (session != null && content.isSelected() && DebuggerContentInfo.WATCHES_CONTENT.equals(ViewImpl.ID.get(content))) {
+        if (mySession != null && content.isSelected() && getWatchesContentId().equals(ViewImpl.ID.get(content))) {
           myRebuildWatchesRunnable.run();
         }
       }
@@ -340,12 +339,17 @@ public class XDebugSessionTab extends DebuggerSessionTabBase {
       if (component instanceof DataProvider) {
         RunnerContentUi ui = RunnerContentUi.KEY.getData(((DataProvider)component));
         if (ui != null) {
-          ui.restoreContent(tab.myWatchesInVariables ? DebuggerContentInfo.VARIABLES_CONTENT : DebuggerContentInfo.WATCHES_CONTENT);
+          ui.restoreContent(tab.getWatchesContentId());
         }
       }
     }
   }
 
+  @NotNull
+  private String getWatchesContentId() {
+    return myWatchesInVariables ? DebuggerContentInfo.VARIABLES_CONTENT : DebuggerContentInfo.WATCHES_CONTENT;
+  }
+
   private void registerView(String contentId, @NotNull XDebugView view) {
     myViews.put(contentId, view);
     Disposer.register(myRunContentDescriptor, view);
index 38618c7ede395694b21c8aaac20c70dcf1185dae..362bac2ac83bf579baa68d7b7a8b8ef9f0e0e355 100644 (file)
@@ -42,7 +42,7 @@ public class WatchNodeImpl extends XValueNodeImpl implements WatchNode {
                        @NotNull WatchesRootNode parent,
                        @NotNull XExpression expression,
                        @Nullable XStackFrame stackFrame) {
-    super(tree, parent, expression.getExpression(), new XWatchValue(expression, stackFrame));
+    super(tree, parent, expression.getExpression(), new XWatchValue(expression, tree.isShowing() ? stackFrame : null));
     myExpression = expression;
   }