From a7def4b8a97f5fa862290eeebb83b2198d7063ae Mon Sep 17 00:00:00 2001 From: Nadya Zabrodina Date: Fri, 18 Aug 2017 17:11:11 +0300 Subject: [PATCH] branchPopup: remove prefix info rendering; add special icons instead * add special label icons for current branch/bookmarks; * remove ugly prefix info from popup rendering; * cleanUp; * IDEA-174360 hard to distinguish current branch label and branch label then the node is selected; * IDEA-175167 current label and branch name are not aligned; --- .../icons/currentBranchFavoriteLabel.png | Bin 0 -> 149 bytes .../icons/currentBranchFavoriteLabel@2x.png | Bin 0 -> 233 bytes .../resources/icons/currentBranchLabel.png | Bin 0 -> 178 bytes .../resources/icons/currentBranchLabel@2x.png | Bin 0 -> 269 bytes .../intellij/dvcs/ui/BranchActionGroup.java | 18 ++++++++++++++---- .../dvcs/ui/BranchActionGroupPopup.java | 13 ++----------- .../ui/PopupElementWithAdditionalInfo.java | 3 --- .../dvcs-impl/src/icons/DvcsImplIcons.java | 2 ++ .../ui/branch/GitBranchPopupActions.java | 8 ++------ .../hg4idea/branch/HgBranchPopupActions.java | 16 ++++------------ 10 files changed, 24 insertions(+), 36 deletions(-) create mode 100644 platform/dvcs-impl/resources/icons/currentBranchFavoriteLabel.png create mode 100644 platform/dvcs-impl/resources/icons/currentBranchFavoriteLabel@2x.png create mode 100644 platform/dvcs-impl/resources/icons/currentBranchLabel.png create mode 100644 platform/dvcs-impl/resources/icons/currentBranchLabel@2x.png diff --git a/platform/dvcs-impl/resources/icons/currentBranchFavoriteLabel.png b/platform/dvcs-impl/resources/icons/currentBranchFavoriteLabel.png new file mode 100644 index 0000000000000000000000000000000000000000..c9471538ca389b8d97bc0079a026123def03f310 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`F`h1tAr-fh6C_L?oUXcU98th* z$)?ksB(Z;n2=g?>j}v)6F1^AaP^NI5+hC7;$JGy#7aEimF7i%XbVXpo>k3V?mVgQY xqa}?qA`Yf@=xcVaZhR4;kihY;K{|keq2TT7zZ1SpWdhp6;OXk;vd$@?2>?ASG!*~< literal 0 HcmV?d00001 diff --git a/platform/dvcs-impl/resources/icons/currentBranchFavoriteLabel@2x.png b/platform/dvcs-impl/resources/icons/currentBranchFavoriteLabel@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..755d81844a7cd362342d85e03722f8ac90e0ba0c GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ4W2HJAr-fh6C_v{Gw{|#=2y3Q z+%dSo$MEn`V;KX-?@PBBZ5?uWj@nwtJao`z|B^8A__L0`4r|=F*(H)EnjaJ7QgHX+ zUBc{8At~^g&qZW`MUsM$;@49gMw=8%PjgIoz48Ue{eurU+8fJQex|Zal~pvo(5JA! zXTdUMjg#}P6u2-iZ4F_*yIDn4#&PegNj&ZWah8D(IBso`>?~=~XWq*&OL>L-eHDwQ gvX8c0ZKeziSu+YBL-dK9umz4X|dHCw`c!ODek zzMdxpBTg}#(pFEBb^Q86?XX~a#x)=1gMwH3^Mzy_cmI%MJuJn*AY;h*<9PBlJD~p< NJYD@<);T3K0RYl5T literal 0 HcmV?d00001 diff --git a/platform/dvcs-impl/src/com/intellij/dvcs/ui/BranchActionGroup.java b/platform/dvcs-impl/src/com/intellij/dvcs/ui/BranchActionGroup.java index 3a9fd5ee6493..f698143a8f7d 100644 --- a/platform/dvcs-impl/src/com/intellij/dvcs/ui/BranchActionGroup.java +++ b/platform/dvcs-impl/src/com/intellij/dvcs/ui/BranchActionGroup.java @@ -19,19 +19,29 @@ import com.intellij.openapi.actionSystem.ActionGroup; import com.intellij.openapi.project.DumbAware; import com.intellij.ui.LayeredIcon; import com.intellij.util.ui.EmptyIcon; +import org.jetbrains.annotations.NotNull; + +import javax.swing.*; import static icons.DvcsImplIcons.*; public abstract class BranchActionGroup extends ActionGroup implements DumbAware { private boolean myIsFavorite; - private final LayeredIcon myIcon; - private final LayeredIcon myHoveredIcon; + private LayeredIcon myIcon; + private LayeredIcon myHoveredIcon; public BranchActionGroup() { super("", true); - myIcon = new LayeredIcon(Favorite, EmptyIcon.ICON_16); - myHoveredIcon = new LayeredIcon(FavoriteOnHover, NotFavoriteOnHover); + setIcons(Favorite, EmptyIcon.ICON_16, FavoriteOnHover, NotFavoriteOnHover); + } + + protected void setIcons(@NotNull Icon favorite, + @NotNull Icon notFavorite, + @NotNull Icon favoriteOnHover, + @NotNull Icon notFavoriteOnHover) { + myIcon = new LayeredIcon(favorite, notFavorite); + myHoveredIcon = new LayeredIcon(favoriteOnHover, notFavoriteOnHover); getTemplatePresentation().setIcon(myIcon); getTemplatePresentation().setHoveredIcon(myHoveredIcon); updateIcons(); diff --git a/platform/dvcs-impl/src/com/intellij/dvcs/ui/BranchActionGroupPopup.java b/platform/dvcs-impl/src/com/intellij/dvcs/ui/BranchActionGroupPopup.java index ea5e8dad3827..db7f2ee3fd84 100644 --- a/platform/dvcs-impl/src/com/intellij/dvcs/ui/BranchActionGroupPopup.java +++ b/platform/dvcs-impl/src/com/intellij/dvcs/ui/BranchActionGroupPopup.java @@ -339,7 +339,6 @@ public class BranchActionGroupPopup extends FlatSpeedSearchPopup { private class MyPopupListElementRenderer extends PopupListElementRenderer implements IconListPopupRenderer { - private ErrorLabel myPrefixLabel; private ErrorLabel myInfoLabel; private IconComponent myIconLabel; @@ -378,7 +377,6 @@ public class BranchActionGroupPopup extends FlatSpeedSearchPopup { } myIconLabel.setIcon(myDescriptor.getIconFor(value)); PopupElementWithAdditionalInfo additionalInfoAction = getSpecificAction(value, PopupElementWithAdditionalInfo.class); - updateInfoComponent(myPrefixLabel, additionalInfoAction != null ? additionalInfoAction.getPrefixInfo() : null, isSelected); updateInfoComponent(myInfoLabel, additionalInfoAction != null ? additionalInfoAction.getInfoText() : null, isSelected); } @@ -402,12 +400,6 @@ public class BranchActionGroupPopup extends FlatSpeedSearchPopup { @Override protected JComponent createItemComponent() { - myPrefixLabel = new ErrorLabel(); - myPrefixLabel.setOpaque(true); - myPrefixLabel.setBorder(JBUI.Borders.empty(1, 1, 1, DEFAULT_HGAP)); - Font minusOneFont = FontUtil.minusOne(myPrefixLabel.getFont()); - myPrefixLabel.setFont(minusOneFont); - myTextLabel = new ErrorLabel(); myTextLabel.setOpaque(true); myTextLabel.setBorder(JBUI.Borders.empty(1)); @@ -415,7 +407,7 @@ public class BranchActionGroupPopup extends FlatSpeedSearchPopup { myInfoLabel = new ErrorLabel(); myInfoLabel.setOpaque(true); myInfoLabel.setBorder(JBUI.Borders.empty(1, DEFAULT_HGAP, 1, 1)); - myInfoLabel.setFont(minusOneFont); + myInfoLabel.setFont(FontUtil.minusOne(myInfoLabel.getFont())); JPanel compoundPanel = new OpaquePanel(new BorderLayout(), JBColor.WHITE); myIconLabel = new IconComponent(); @@ -425,7 +417,6 @@ public class BranchActionGroupPopup extends FlatSpeedSearchPopup { compoundPanel.add(myIconLabel, BorderLayout.WEST); textPanel.add(myTextLabel, BorderLayout.WEST); textPanel.add(myInfoLabel, BorderLayout.CENTER); - compoundTextPanel.add(myPrefixLabel, BorderLayout.WEST); compoundTextPanel.add(textPanel, BorderLayout.CENTER); compoundPanel.add(compoundTextPanel, BorderLayout.CENTER); return layoutComponent(compoundPanel); @@ -552,7 +543,7 @@ public class BranchActionGroupPopup extends FlatSpeedSearchPopup { public MyToolbarButton(@NotNull String text, @NotNull Icon icon, @NotNull Icon rolloverIcon, @NotNull ActionListener buttonListener) { super(icon); setToolTipText(text); - setBorder(IdeBorderFactory.createEmptyBorder()); + setBorder(JBUI.Borders.empty()); setBorderPainted(false); setContentAreaFilled(false); setOpaque(false); diff --git a/platform/dvcs-impl/src/com/intellij/dvcs/ui/PopupElementWithAdditionalInfo.java b/platform/dvcs-impl/src/com/intellij/dvcs/ui/PopupElementWithAdditionalInfo.java index b7508b845dfb..e327ca556e07 100644 --- a/platform/dvcs-impl/src/com/intellij/dvcs/ui/PopupElementWithAdditionalInfo.java +++ b/platform/dvcs-impl/src/com/intellij/dvcs/ui/PopupElementWithAdditionalInfo.java @@ -20,7 +20,4 @@ import org.jetbrains.annotations.Nullable; public interface PopupElementWithAdditionalInfo { @Nullable default String getInfoText() {return null;} - - @Nullable - default String getPrefixInfo() {return null;} } diff --git a/platform/dvcs-impl/src/icons/DvcsImplIcons.java b/platform/dvcs-impl/src/icons/DvcsImplIcons.java index c98ca83bbbda..94f22e86aa7b 100644 --- a/platform/dvcs-impl/src/icons/DvcsImplIcons.java +++ b/platform/dvcs-impl/src/icons/DvcsImplIcons.java @@ -14,6 +14,8 @@ public class DvcsImplIcons { } public static final Icon CherryPick = load("/icons/cherryPick.png"); // 16x16 + public static final Icon CurrentBranchFavoriteLabel = load("/icons/currentBranchFavoriteLabel.png"); // 16x16 + public static final Icon CurrentBranchLabel = load("/icons/currentBranchLabel.png"); // 16x16 public static final Icon Favorite = load("/icons/favorite.png"); // 16x16 public static final Icon FavoriteOnHover = load("/icons/favoriteOnHover.png"); // 16x16 public static final Icon NotFavoriteOnHover = load("/icons/notFavoriteOnHover.png"); // 16x16 diff --git a/plugins/git4idea/src/git4idea/ui/branch/GitBranchPopupActions.java b/plugins/git4idea/src/git4idea/ui/branch/GitBranchPopupActions.java index ac6da38c9faf..4d7a70e888d5 100644 --- a/plugins/git4idea/src/git4idea/ui/branch/GitBranchPopupActions.java +++ b/plugins/git4idea/src/git4idea/ui/branch/GitBranchPopupActions.java @@ -37,6 +37,7 @@ import git4idea.branch.GitBranchesCollection; import git4idea.branch.GitNewBranchOptions; import git4idea.repo.GitRepository; import git4idea.validators.GitNewBranchNameValidator; +import icons.DvcsImplIcons; import one.util.streamex.StreamEx; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -337,6 +338,7 @@ class GitBranchPopupActions { @NotNull String branchName, @NotNull GitRepository selectedRepository) { super(project, repositories, branchName, selectedRepository); + setIcons(DvcsImplIcons.CurrentBranchFavoriteLabel, DvcsImplIcons.CurrentBranchLabel, DvcsImplIcons.FavoriteOnHover, DvcsImplIcons.NotFavoriteOnHover); } @NotNull @@ -344,12 +346,6 @@ class GitBranchPopupActions { public AnAction[] getChildren(@Nullable AnActionEvent e) { return new AnAction[]{new LocalBranchActions.RenameBranchAction(myProject, myRepositories, myBranchName)}; } - - @Nullable - @Override - public String getPrefixInfo() { - return "current"; - } } /** diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/branch/HgBranchPopupActions.java b/plugins/hg4idea/src/org/zmlx/hg4idea/branch/HgBranchPopupActions.java index 4a515d1a0d76..b560a5cefcb8 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/branch/HgBranchPopupActions.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/branch/HgBranchPopupActions.java @@ -38,6 +38,7 @@ import com.intellij.util.ArrayUtil; import com.intellij.util.containers.ContainerUtil; import com.intellij.vcs.log.Hash; import com.intellij.vcs.log.impl.HashImpl; +import icons.DvcsImplIcons; import one.util.streamex.StreamEx; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -289,6 +290,8 @@ public class HgBranchPopupActions { public static class CurrentBranch extends BranchActions implements PopupElementWithAdditionalInfo { public CurrentBranch(@NotNull Project project, @NotNull List repositories, @NotNull String branchName) { super(project, repositories, branchName); + setIcons(DvcsImplIcons.CurrentBranchFavoriteLabel, DvcsImplIcons.CurrentBranchLabel, DvcsImplIcons.FavoriteOnHover, + DvcsImplIcons.NotFavoriteOnHover); } @NotNull @@ -296,12 +299,6 @@ public class HgBranchPopupActions { public AnAction[] getChildren(@Nullable AnActionEvent e) { return AnAction.EMPTY_ARRAY; } - - @Nullable - @Override - public String getPrefixInfo() { - return "current"; - } } /** @@ -340,6 +337,7 @@ public class HgBranchPopupActions { public CurrentActiveBookmark(@NotNull Project project, @NotNull List repositories, @NotNull String branchName) { super(project, repositories, branchName); + setIcons(DvcsImplIcons.CurrentBranchFavoriteLabel, DvcsImplIcons.CurrentBranchLabel, DvcsImplIcons.FavoriteOnHover, DvcsImplIcons.NotFavoriteOnHover); } @NotNull @@ -347,11 +345,5 @@ public class HgBranchPopupActions { public AnAction[] getChildren(@Nullable AnActionEvent e) { return new AnAction[]{new BookmarkActions.DeleteBookmarkAction(myProject, myRepositories, myBranchName)}; } - - @Nullable - @Override - public String getPrefixInfo() { - return "active"; - } } }