diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/InternalDecorator.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/InternalDecorator.java index 135bdb2534cb..2162782e2132 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/InternalDecorator.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/InternalDecorator.java @@ -68,7 +68,7 @@ public final class InternalDecorator extends JPanel implements Queryable, DataPr private final ToggleWindowedModeAction myToggleWindowedModeAction; private final ToggleSideModeAction myToggleSideModeAction; private final ToggleContentUiTypeAction myToggleContentUiTypeAction; - private final ToggleShowStripeButtonAction myToggleShowStipeButtonAction; + private final RemoveStripeButtonAction myHideStripeButtonAction; private ActionGroup myAdditionalGearActions; /** @@ -98,7 +98,7 @@ public final class InternalDecorator extends JPanel implements Queryable, DataPr myToggleDockModeAction = new ToggleDockModeAction(); myToggleAutoHideModeAction = new TogglePinnedModeAction(); myToggleContentUiTypeAction = new ToggleContentUiTypeAction(); - myToggleShowStipeButtonAction = new ToggleShowStripeButtonAction(); + myHideStripeButtonAction = new RemoveStripeButtonAction(); myToggleToolbarGroup = ToggleToolbarAction.createToggleToolbarGroup(myProject, myToolWindow); myHeader = new ToolWindowHeader(toolWindow, info, new Producer() { @@ -173,7 +173,6 @@ public final class InternalDecorator extends JPanel implements Queryable, DataPr else { // docked and floating windows don't have divider remove(myDivider); } - myHeader.updateHideButton(); validate(); repaint(); @@ -458,7 +457,7 @@ public final class InternalDecorator extends JPanel implements Queryable, DataPr group.add(myToggleWindowedModeAction); group.add(myToggleSideModeAction); } - group.add(myToggleShowStipeButtonAction); + group.add(myHideStripeButtonAction); return group; } @@ -641,26 +640,22 @@ public final class InternalDecorator extends JPanel implements Queryable, DataPr } } - private final class ToggleShowStripeButtonAction extends AnAction implements DumbAware { - public ToggleShowStripeButtonAction() { + private final class RemoveStripeButtonAction extends AnAction implements DumbAware { + public RemoveStripeButtonAction() { Presentation presentation = getTemplatePresentation(); - presentation.setText(ActionsBundle.message("action.ToggleShowStripeButton.text")); - presentation.setDescription(ActionsBundle.message("action.ToggleShowStripeButton.description")); + presentation.setText(ActionsBundle.message("action.RemoveStripeButton.text")); + presentation.setDescription(ActionsBundle.message("action.RemoveStripeButton.description")); } @Override public void update(@NotNull AnActionEvent e) { - e.getPresentation().setText(myInfo.isShowStripeButton() - ? ActionsBundle.message("action.ToggleShowStripeButton.text") - : ActionsBundle.message("action.ToggleShowStripeButton.text2")); - e.getPresentation().setEnabledAndVisible(!myInfo.isFloating() && !myInfo.isWindowed()); + e.getPresentation().setEnabledAndVisible(myInfo.isShowStripeButton()); } @Override public void actionPerformed(AnActionEvent e) { - boolean newState = !myInfo.isShowStripeButton(); - fireVisibleOnPanelChanged(newState); - if (!newState && getToolWindow().isActive()) { + fireVisibleOnPanelChanged(false); + if (getToolWindow().isActive()) { fireHidden(); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java index 4ae75ee6784e..1bb565448564 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java @@ -301,9 +301,6 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable, UIS } private static Icon getHideToolWindowIcon(ToolWindow toolWindow) { - if (!toolWindow.isShowStripeButton()) { - return AllIcons.Actions.Close; - } ToolWindowAnchor anchor = toolWindow.getAnchor(); if (anchor == ToolWindowAnchor.BOTTOM) { return AllIcons.General.HideDownPart; @@ -316,9 +313,6 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable, UIS } private static Icon getHideIcon(ToolWindow toolWindow) { - if (!toolWindow.isShowStripeButton()) { - return AllIcons.Actions.Close; - } ToolWindowAnchor anchor = toolWindow.getAnchor(); if (anchor == ToolWindowAnchor.BOTTOM) { return AllIcons.General.HideDown; @@ -331,9 +325,6 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable, UIS } private static Icon getHideToolWindowHoveredIcon(ToolWindow toolWindow) { - if (!toolWindow.isShowStripeButton()) { - return AllIcons.Actions.CloseHovered; - } ToolWindowAnchor anchor = toolWindow.getAnchor(); if (anchor == ToolWindowAnchor.BOTTOM) { return AllIcons.General.HideDownPartHover; @@ -346,9 +337,6 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable, UIS } private static Icon getHideHoveredIcon(ToolWindow toolWindow) { - if (!toolWindow.isShowStripeButton()) { - return AllIcons.Actions.CloseHovered; - } ToolWindowAnchor anchor = toolWindow.getAnchor(); if (anchor == ToolWindowAnchor.BOTTOM) { return AllIcons.General.HideDownHover; @@ -450,10 +438,6 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable, UIS return new Dimension(size.width, TabsUtil.getTabsHeight()); } - public void updateHideButton() { - myHideButton.updateIcon(); - } - private class ActionButton extends Wrapper implements ActionListener, AltStateManager.AltListener { private final InplaceButton myButton; private final AnAction myAction; @@ -487,7 +471,7 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable, UIS setContent(myButton); setOpaque(false); - updateIcon(); + setIcon(getActiveIcon(), getInactiveIcon() == null ? getActiveIcon() : getInactiveIcon(), getActiveHoveredIcon()); PropertyChangeListener listener = new PropertyChangeListener() { @Override @@ -508,10 +492,6 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable, UIS addPropertyChangeListener(listener); } - private void updateIcon() { - setIcon(getActiveIcon(), getInactiveIcon() == null ? getActiveIcon() : getInactiveIcon(), getActiveHoveredIcon()); - } - public void updateTooltip() { myButton.setToolTipText(getToolTipTextByAction(myCurrentAction)); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java index 354e3f50e21e..3eda40a485ee 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java @@ -1124,6 +1124,10 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements mySideStack.remove(id); } + if (!toBeShownInfo.isShowStripeButton()) { + toBeShownInfo.setShowStripeButton(true); + } + appendApplyWindowInfoCmd(toBeShownInfo, commandsList); } diff --git a/platform/platform-resources-en/src/messages/ActionsBundle.properties b/platform/platform-resources-en/src/messages/ActionsBundle.properties index 27872121c0b4..35af1b7ecf06 100644 --- a/platform/platform-resources-en/src/messages/ActionsBundle.properties +++ b/platform/platform-resources-en/src/messages/ActionsBundle.properties @@ -856,9 +856,8 @@ action.ToggleSideMode.text=Split Mode action.ToggleSideMode.description=Tool windows split mode on/off action.ToggleContentUiTypeMode.text=Group Tabs action.ToggleContentUiTypeMode.description=Toggle between tabbed/combo presentation of contents -action.ToggleShowStripeButton.text=Remove from Sidebar -action.ToggleShowStripeButton.text2=Keep in Sidebar -action.ToggleShowStripeButton.description=Show/hide tool window button from panel +action.RemoveStripeButton.text=Remove from Sidebar +action.RemoveStripeButton.description=Remove tool window button from sidebar action.ShowContent.text=Show List of Tabs action.ShowContent.description=Show a popup with the list of toolwindow tabs group.ResizeToolWindowGroup.text=Resize