From 0a65dd3acdb86ab3b473e56bbf8f7df7243d1747 Mon Sep 17 00:00:00 2001 From: Eugene Petrenko Date: Tue, 22 Jun 2021 18:48:59 +0200 Subject: [PATCH] WIP plugins: handle install from disk actions (disable for now) GitOrigin-RevId: 06b80973cf47809c5d8f5fbf0ddb221682b38e85 --- .../intellij/ide/plugins/InstallFromDiskAction.java | 7 +++++++ .../ide/plugins/PluginManagerConfigurable.java | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstallFromDiskAction.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstallFromDiskAction.java index 260e5a9ac7e8..249157ff66f6 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstallFromDiskAction.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstallFromDiskAction.java @@ -7,6 +7,7 @@ import com.intellij.ide.plugins.org.PluginManagerConfigurableForOrg; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.project.DumbAwareAction; import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.Messages; import org.jetbrains.annotations.NotNull; public class InstallFromDiskAction extends DumbAwareAction { @@ -26,6 +27,12 @@ public class InstallFromDiskAction extends DumbAwareAction { @Override public void actionPerformed(@NotNull AnActionEvent e) { Project project = e.getProject(); + + if (!PluginManagerConfigurableForOrg.getInstance().allowInstallFromDisk()) { + Messages.showErrorDialog(project, IdeBundle.message("action.InstallFromDiskAction.not.allowed.description"), IdeBundle.message("action.InstallFromDiskAction.text")); + return; + } + PluginInstaller.chooseAndInstall(project, null, (file, __) -> PluginInstaller.installFromDisk(file, project, null)); diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java index 6fd584ba5047..e16a432db711 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java @@ -10,6 +10,7 @@ import com.intellij.ide.IdeBundle; import com.intellij.ide.plugins.certificates.PluginCertificateManager; import com.intellij.ide.plugins.marketplace.MarketplaceRequests; import com.intellij.ide.plugins.newui.*; +import com.intellij.ide.plugins.org.PluginManagerConfigurableForOrg; import com.intellij.ide.util.PropertiesComponent; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.ApplicationInfo; @@ -1682,10 +1683,17 @@ public final class PluginManagerConfigurable } private final class InstallFromDiskAction extends DumbAwareAction { - private InstallFromDiskAction() {super(IdeBundle.messagePointer("action.InstallFromDiskAction.text"));} + private InstallFromDiskAction() { + super(IdeBundle.messagePointer("action.InstallFromDiskAction.text")); + } @Override public void actionPerformed(@NotNull AnActionEvent e) { + if (!PluginManagerConfigurableForOrg.getInstance().allowInstallFromDisk()) { + Messages.showErrorDialog(e.getProject(), IdeBundle.message("action.InstallFromDiskAction.not.allowed.description"), IdeBundle.message("action.InstallFromDiskAction.text")); + return; + } + PluginInstaller.chooseAndInstall(e.getProject(), myCardPanel, (file, parent) -> PluginInstaller.installFromDisk(myPluginModel, myPluginModel, file, parent, callbackData -> { myPluginModel.pluginInstalledFromDisk(callbackData);