From 65edef9816224281768f695e33d85aa0f3483a1b Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 2 Jun 2020 12:19:44 +0200 Subject: [PATCH] Add "Restart" link to enable/disable plugins notification, write it to event log (IDEA-236299) GitOrigin-RevId: f63720b4ac1aa5e7ac62e604de76812e4cd02001 --- .../ide/ui/PluginBooleanOptionDescriptor.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java b/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java index 6928b7919e15..28e8efb511e5 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/PluginBooleanOptionDescriptor.java @@ -6,6 +6,7 @@ import com.intellij.ide.plugins.*; import com.intellij.ide.ui.search.BooleanOptionDescription; import com.intellij.ide.ui.search.NotABooleanOptionDescription; import com.intellij.notification.*; +import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationNamesInfo; @@ -27,9 +28,9 @@ import java.util.stream.Stream; */ final class PluginBooleanOptionDescriptor extends NotABooleanOptionDescription implements BooleanOptionDescription.RequiresRebuild { private static final NotificationGroup PLUGINS_LIST_CHANGED_GROUP = - new NotificationGroup("Plugins updates", NotificationDisplayType.STICKY_BALLOON, false, null, null, null, PluginManagerCore.CORE_ID); + new NotificationGroup("Plugins updates", NotificationDisplayType.STICKY_BALLOON, true, null, null, null, PluginManagerCore.CORE_ID); private static final NotificationGroup PLUGINS_AUTO_SWITCH_GROUP = - new NotificationGroup("Plugins AutoSwitch", NotificationDisplayType.BALLOON, false, null, null, null, PluginManagerCore.CORE_ID); + new NotificationGroup("Plugins AutoSwitch", NotificationDisplayType.BALLOON, true, null, null, null, PluginManagerCore.CORE_ID); private static final Notifier ourRestartNeededNotifier = new Notifier(); @@ -189,7 +190,13 @@ final class PluginBooleanOptionDescriptor extends NotABooleanOptionDescription i .createNotification( IdeBundle.message("plugins.changed.notification.content", ApplicationNamesInfo.getInstance().getFullProductName()), NotificationType.INFORMATION) - .setTitle(IdeBundle.message("plugins.changed.notification.title")); + .setTitle(IdeBundle.message("plugins.changed.notification.title")) + .addAction(new AnAction(IdeBundle.message("ide.restart.action")) { + @Override + public void actionPerformed(@NotNull AnActionEvent e) { + ApplicationManager.getApplication().restart(); + } + }); if (prevNotification.compareAndSet(prev, next)) { Notifications.Bus.notify(next);