diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java index 5bd576c109f6..cc471c47daf4 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/DebuggerUtilsEx.java @@ -733,4 +733,14 @@ public abstract class DebuggerUtilsEx extends DebuggerUtils { if (file == null) return null; return file.findElementAt(offset); } + + public static String getLocationMethodQName(@NotNull Location location) { + StringBuilder res = new StringBuilder(); + ReferenceType type = location.declaringType(); + if (type != null) { + res.append(type.name()).append('.'); + } + res.append(location.method().name()); + return res.toString(); + } } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/ExportDialog.java b/java/debugger/impl/src/com/intellij/debugger/ui/ExportDialog.java index b67aaefcaf4d..eaf411262157 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/ExportDialog.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/ExportDialog.java @@ -235,7 +235,7 @@ public class ExportDialog extends DialogWrapper { } return DebuggerBundle.message( "export.threads.stackframe.format", - location.declaringType().name() + "." + location.method().name(), + DebuggerUtilsEx.getLocationMethodQName(location), sourceName, location.lineNumber() ); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/ExceptionBreakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/ExceptionBreakpoint.java index e4f404e909c7..b2554e79dd7d 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/ExceptionBreakpoint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/ExceptionBreakpoint.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 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. @@ -25,6 +25,7 @@ import com.intellij.debugger.DebuggerManagerEx; import com.intellij.debugger.SourcePosition; import com.intellij.debugger.engine.*; import com.intellij.debugger.engine.evaluation.EvaluateException; +import com.intellij.debugger.impl.DebuggerUtilsEx; import com.intellij.icons.AllIcons; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; @@ -177,7 +178,7 @@ public class ExceptionBreakpoint extends Breakpoint frames = event.thread().frames(); @@ -432,7 +432,7 @@ public class LineBreakpoint extends BreakpointWithHighlighter { else { builder.append(DebuggerBundle.message( "status.line.breakpoint.reached", - location.declaringType().name() + "." + location.method().name(), + DebuggerUtilsEx.getLocationMethodQName(location), sourceName, getLineIndex() + 1 )); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/MethodBreakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/MethodBreakpoint.java index 48fccf559000..8510e7b204be 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/MethodBreakpoint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/MethodBreakpoint.java @@ -180,7 +180,7 @@ public class MethodBreakpoint extends BreakpointWithHighlighter myPlaceInGrid2Cell = new EnumMap(PlaceInGrid.class); diff --git a/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java b/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java index d0f6e08eab06..8d3bf33f3fc2 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/ThreeComponentsSplitter.java @@ -22,6 +22,8 @@ import com.intellij.openapi.util.Weighted; import com.intellij.openapi.wm.IdeGlassPane; import com.intellij.openapi.wm.IdeGlassPaneUtil; import com.intellij.ui.ClickListener; +import com.intellij.ui.Gray; +import com.intellij.ui.JBColor; import com.intellij.ui.UIBundle; import com.intellij.util.ui.JBUI; import com.intellij.util.ui.update.Activatable; @@ -77,8 +79,11 @@ public class ThreeComponentsSplitter extends JPanel implements Disposable { this(false); } - public ThreeComponentsSplitter(boolean vertical) { + this(vertical, false); + } + + public ThreeComponentsSplitter(boolean vertical, boolean onePixelDividers) { myVerticalSplit = vertical; myShowDividerControls = false; myFirstDivider = new Divider(true); @@ -86,7 +91,12 @@ public class ThreeComponentsSplitter extends JPanel implements Disposable { myLastDivider = new Divider(false); Disposer.register(this, myLastDivider); - myDividerWidth = 7; + myDividerWidth = onePixelDividers ? 1 : 7; + if (onePixelDividers) { + final JBColor bg = new JBColor(Gray.xCA, Gray.x37); + myFirstDivider.setBackground(bg); + myLastDivider.setBackground(bg); + } setOpaque(false); add(myFirstDivider); add(myLastDivider); diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/DarculaEditorTabsPainter.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/DarculaEditorTabsPainter.java index 54c97b57a4b6..14d74ac71a2f 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/DarculaEditorTabsPainter.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/DarculaEditorTabsPainter.java @@ -27,6 +27,9 @@ class DarculaEditorTabsPainter extends DefaultEditorTabsPainter { @Override protected Color getDefaultTabColor() { + if (myDefaultTabColor != null) { + return myDefaultTabColor; + } return new Color(0x515658); } diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/DefaultEditorTabsPainter.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/DefaultEditorTabsPainter.java index acfcc7c7bd37..eba06e8aa110 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/DefaultEditorTabsPainter.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/DefaultEditorTabsPainter.java @@ -62,6 +62,9 @@ public class DefaultEditorTabsPainter extends JBEditorTabsPainter { } protected Color getDefaultTabColor() { + if (myDefaultTabColor != null) { + return myDefaultTabColor; + } return Color.WHITE; } diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabs.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabs.java index d377f00cfeb4..24109b8de205 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabs.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabs.java @@ -43,8 +43,8 @@ import java.util.List; */ public class JBEditorTabs extends JBTabsImpl { public static final String TABS_ALPHABETICAL_KEY = "tabs.alphabetical"; - private JBEditorTabsPainter myDarkPainter = new DarculaEditorTabsPainter(); - private JBEditorTabsPainter myDefaultPainter = new DefaultEditorTabsPainter(); + protected JBEditorTabsPainter myDarkPainter = new DarculaEditorTabsPainter(); + protected JBEditorTabsPainter myDefaultPainter = new DefaultEditorTabsPainter(); public JBEditorTabs(@Nullable Project project, @NotNull ActionManager actionManager, IdeFocusManager focusManager, @NotNull Disposable parent) { @@ -166,7 +166,7 @@ public class JBEditorTabs extends JBTabsImpl { return hasUnderline() ? super.getActiveTabUnderlineHeight() : 1; } - JBEditorTabsPainter getPainter() { + protected JBEditorTabsPainter getPainter() { return UIUtil.isUnderDarcula() ? myDarkPainter : myDefaultPainter; } diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabsPainter.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabsPainter.java index 39a925efaa1a..492641ba105a 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabsPainter.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabsPainter.java @@ -23,7 +23,9 @@ import java.awt.*; /** * @author Konstantin Bulenkov */ -abstract class JBEditorTabsPainter { +public abstract class JBEditorTabsPainter { + protected Color myDefaultTabColor; + public abstract void doPaintInactive(Graphics2D g2d, Rectangle effectiveBounds, int x, @@ -94,4 +96,8 @@ abstract class JBEditorTabsPainter { public Color getEmptySpaceColor() { return UIUtil.isUnderAquaLookAndFeel() ? Gray.xC8 : UIUtil.getPanelBackground(); } + + public void setDefaultTabColor(Color color) { + myDefaultTabColor = color; + } } diff --git a/python/helpers/pydev/pycharm-readme.txt b/python/helpers/pydev/pycharm-readme.txt new file mode 100644 index 000000000000..3f7073dfdc66 --- /dev/null +++ b/python/helpers/pydev/pycharm-readme.txt @@ -0,0 +1,20 @@ +The sources in this folder are PyCharm version of the debugger PyDev.Debugger. +They should be in sync, so after testing all commits should be backported to the original repo. + +How to do it? + +a) You should have PyDev.Debugger repo clone and fetch there IDEA commits related to this folder with changed paths from python/pydev/* to * +b) Then cherry-pick all necessary commits resolving merge conflicts + +Steps: + +1) git clone https://github.com/fabioz/PyDev.Debugger.git +2) +and in this folder: +3) git remote rm origin +4) git tag -l | xargs git tag -d +5) git filter-branch --subdirectory-filter python/helpers/pydev --prune-empty --index-filter 'SHA=$(git write-tree); rm $GIT_INDEX_FILE && git read-tree --prefix= $SHA' -- --all +in PyDev.Debugger folder: +6) git remote add temp-repo +7) git fetch temp-repo +8) Cherry-pick all the changes \ No newline at end of file