From 58d80c9e7e6b73751578198e2f981ac0cad95b22 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Fri, 12 Jul 2024 02:53:45 +0400 Subject: [PATCH] cleanup `PresentationFactory.processPresentation` 1. Deprecate unnecessary overload 2. Change the order of arguments GitOrigin-RevId: d4f2e7a4772e4eea9ac0adf5a6d6c157f70a9544 --- platform/platform-impl/api-dump-unreviewed.txt | 3 ++- .../openapi/actionSystem/SplitButtonAction.java | 8 ++++---- .../openapi/actionSystem/impl/ActionButton.java | 4 ++-- .../impl/ActionToolbarPresentationFactory.java | 3 ++- .../impl/MenuItemPresentationFactory.java | 11 +++++++++++ .../actionSystem/impl/PresentationFactory.java | 4 ++-- 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/platform/platform-impl/api-dump-unreviewed.txt b/platform/platform-impl/api-dump-unreviewed.txt index 6ea27ff05dfc..0d52160a1a2e 100644 --- a/platform/platform-impl/api-dump-unreviewed.txt +++ b/platform/platform-impl/api-dump-unreviewed.txt @@ -11842,6 +11842,7 @@ c:com.intellij.openapi.actionSystem.impl.MenuItemPresentationFactory - sf:HIDE_ICON:com.intellij.openapi.util.Key - ():V - (Z):V +- p:processPresentation(com.intellij.openapi.actionSystem.AnAction,com.intellij.openapi.actionSystem.Presentation):V - p:processPresentation(com.intellij.openapi.actionSystem.Presentation):V c:com.intellij.openapi.actionSystem.impl.MoreActionGroup - com.intellij.openapi.actionSystem.DefaultActionGroup @@ -11866,8 +11867,8 @@ c:com.intellij.openapi.actionSystem.impl.PresentationFactory - f:getPresentation(com.intellij.openapi.actionSystem.AnAction):com.intellij.openapi.actionSystem.Presentation - isNeedRebuild():Z - postProcessPresentation(com.intellij.openapi.actionSystem.AnAction,com.intellij.openapi.actionSystem.Presentation):V +- p:processPresentation(com.intellij.openapi.actionSystem.AnAction,com.intellij.openapi.actionSystem.Presentation):V - p:processPresentation(com.intellij.openapi.actionSystem.Presentation):V -- p:processPresentation(com.intellij.openapi.actionSystem.Presentation,com.intellij.openapi.actionSystem.AnAction):V - reset():V - resetNeedRebuild():V - s:updatePresentation(com.intellij.openapi.actionSystem.AnAction):V diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/SplitButtonAction.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/SplitButtonAction.java index 0a8bf7ca20cc..76d82755d8b7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/SplitButtonAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/SplitButtonAction.java @@ -238,11 +238,11 @@ public class SplitButtonAction extends ActionGroupWrapper implements CustomCompo @Override protected void showActionGroupPopup(@NotNull ActionGroup actionGroup, @NotNull AnActionEvent event) { if (myPopupState.isRecentlyHidden()) return; // do not show new popup - ActionManagerImpl am = (ActionManagerImpl) ActionManager.getInstance(); - ActionPopupMenu popupMenu = am.createActionPopupMenu(event.getPlace(), actionGroup, new MenuItemPresentationFactory() { + ActionManagerImpl actionManager = (ActionManagerImpl)event.getActionManager(); + ActionPopupMenu popupMenu = actionManager.createActionPopupMenu(event.getPlace(), actionGroup, new MenuItemPresentationFactory() { @Override - protected void processPresentation(@NotNull Presentation presentation) { - super.processPresentation(presentation); + protected void processPresentation(@NotNull AnAction action, @NotNull Presentation presentation) { + super.processPresentation(action, presentation); if (StringUtil.defaultIfEmpty(presentation.getText(), "").equals(myPresentation.getText()) && StringUtil.defaultIfEmpty(presentation.getDescription(), "").equals(myPresentation.getDescription())) { presentation.setEnabled(selectedActionEnabled()); diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java index bf0d0385f128..d06ac98b18fe 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java @@ -253,8 +253,8 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A private @NotNull MenuItemPresentationFactory createPresentationFactory() { return new MenuItemPresentationFactory() { @Override - protected void processPresentation(@NotNull Presentation presentation) { - super.processPresentation(presentation); + protected void processPresentation(@NotNull AnAction action, @NotNull Presentation presentation) { + super.processPresentation(action, presentation); if (myNoIconsInPopup) { presentation.setIcon(null); presentation.setHoveredIcon(null); diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarPresentationFactory.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarPresentationFactory.java index c518e6ec8bc2..3faf5c8fb5f3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarPresentationFactory.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionToolbarPresentationFactory.java @@ -1,6 +1,7 @@ // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.openapi.actionSystem.impl; +import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.Presentation; import com.intellij.openapi.util.Key; import org.jetbrains.annotations.ApiStatus; @@ -17,7 +18,7 @@ public class ActionToolbarPresentationFactory extends PresentationFactory { private final int myId = ourIdCounter.incrementAndGet(); @Override - protected void processPresentation(@NotNull Presentation presentation) { + protected void processPresentation(@NotNull AnAction action, @NotNull Presentation presentation) { presentation.putClientProperty(ID_KEY, myId); } diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/MenuItemPresentationFactory.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/MenuItemPresentationFactory.java index cae9d945546b..d6888029e9e7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/MenuItemPresentationFactory.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/MenuItemPresentationFactory.java @@ -2,6 +2,7 @@ package com.intellij.openapi.actionSystem.impl; import com.intellij.ide.ui.UISettings; +import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.Presentation; import com.intellij.openapi.util.Key; import org.jetbrains.annotations.NotNull; @@ -22,6 +23,16 @@ public class MenuItemPresentationFactory extends PresentationFactory { this.forceHideIcon = forceHideIcon; } + @Override + protected void processPresentation(@NotNull AnAction action, @NotNull Presentation presentation) { + if (forceHideIcon || !UISettings.getInstance().getShowIconsInMenus()) { + presentation.setIcon(null); + presentation.setDisabledIcon(null); + presentation.setHoveredIcon(null); + presentation.putClientProperty(HIDE_ICON, Boolean.TRUE); + } + } + @Override protected void processPresentation(@NotNull Presentation presentation) { super.processPresentation(presentation); diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/PresentationFactory.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/PresentationFactory.java index 9eae5cafdd31..f1bae1f6dba5 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/PresentationFactory.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/PresentationFactory.java @@ -44,7 +44,7 @@ public class PresentationFactory { presentation.setDisabledIcon(templatePresentation.getDisabledIcon()); presentation.putClientProperty(NEED_UPDATE_PRESENTATION, null); } - processPresentation(presentation, action); + processPresentation(action, presentation); } return presentation; } @@ -58,7 +58,7 @@ public class PresentationFactory { return Collections.unmodifiableSet(myPresentations.keySet()); } - protected void processPresentation(@NotNull Presentation presentation, @NotNull AnAction action) { + protected void processPresentation(@NotNull AnAction action, @NotNull Presentation presentation) { processPresentation(presentation); }