From 004feeac3ae6fc2a67b5f2d6c395e91d4a0b2aa4 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 22 Jul 2019 22:03:21 +0200 Subject: [PATCH] [ui] hides "Reveal In" action when unavailable (IDEA-218224) GitOrigin-RevId: c2fcb0f95138de04f8143face4e01848d2be7667 --- .../com/intellij/ide/actions/RevealFileAction.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/actions/RevealFileAction.java b/platform/platform-impl/src/com/intellij/ide/actions/RevealFileAction.java index 7d421e91684d..31f6cfd06f32 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/RevealFileAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/RevealFileAction.java @@ -11,7 +11,6 @@ import com.intellij.notification.Notification; import com.intellij.notification.NotificationListener; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; -import com.intellij.openapi.actionSystem.Presentation; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.DumbAwareAction; @@ -72,20 +71,23 @@ public class RevealFileAction extends DumbAwareAction { @Override public void update(@NotNull AnActionEvent e) { - VirtualFile file = findLocalFile(e.getData(CommonDataKeys.VIRTUAL_FILE)); - Presentation presentation = e.getPresentation(); - presentation.setText(getActionName()); - presentation.setEnabled(file != null); + e.getPresentation().setEnabledAndVisible(isSupported() && getFile(e) != null); + e.getPresentation().setText(getActionName()); } @Override public void actionPerformed(@NotNull AnActionEvent e) { - VirtualFile file = findLocalFile(e.getData(CommonDataKeys.VIRTUAL_FILE)); + VirtualFile file = getFile(e); if (file != null) { openFile(new File(file.getPresentableUrl())); } } + @Nullable + private static VirtualFile getFile(@NotNull AnActionEvent e) { + return findLocalFile(e.getData(CommonDataKeys.VIRTUAL_FILE)); + } + public static boolean isSupported() { return SystemInfo.isWindows || SystemInfo.isMac || SystemInfo.hasXdgOpen() || Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.OPEN);