mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
plugins advertisement: suggest to enable disabled plugins
This commit is contained in:
+12
-8
@@ -20,6 +20,7 @@ import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.intellij.ide.plugins.IdeaPluginDescriptor;
|
||||
import com.intellij.ide.plugins.PluginManager;
|
||||
import com.intellij.ide.plugins.PluginManagerCore;
|
||||
import com.intellij.ide.plugins.RepositoryHelper;
|
||||
import com.intellij.notification.*;
|
||||
@@ -177,21 +178,24 @@ public class PluginsAdvertiser implements StartupActivity {
|
||||
indicator.setText("Searching for plugin supporting \'" + feature.getImplementationName() + "\'");
|
||||
final List<PluginId> pluginId = retrieve(feature);
|
||||
if (pluginId != null) {
|
||||
//do not suggest to download disabled plugins
|
||||
final List<String> disabledPlugins = PluginManagerCore.getDisabledPlugins();
|
||||
for (PluginId id : pluginId) {
|
||||
if (!disabledPlugins.contains(id.getIdString())) {
|
||||
ids.add(id);
|
||||
}
|
||||
}
|
||||
ids.addAll(pluginId);
|
||||
}
|
||||
indicator.setFraction(((double) idx++) / unknownFeatures.size());
|
||||
}
|
||||
|
||||
try {
|
||||
final List<String> disabledPlugins = PluginManagerCore.getDisabledPlugins();
|
||||
//include disabled plugins
|
||||
for (PluginId id : ids) {
|
||||
final IdeaPluginDescriptor plugin = PluginManager.getPlugin(id);
|
||||
if (plugin != null) {
|
||||
myPlugins.add(PluginDownloader.createDownloader(plugin));
|
||||
}
|
||||
}
|
||||
myAllPlugins = RepositoryHelper.loadPluginsFromRepository(indicator);
|
||||
for (IdeaPluginDescriptor loadedPlugin : myAllPlugins) {
|
||||
if (ids.contains(loadedPlugin.getPluginId())) {
|
||||
final PluginId pluginId = loadedPlugin.getPluginId();
|
||||
if (ids.contains(pluginId) && !disabledPlugins.contains(pluginId.getIdString())) {
|
||||
myPlugins.add(PluginDownloader.createDownloader(loadedPlugin));
|
||||
}
|
||||
}
|
||||
|
||||
+15
-7
@@ -15,10 +15,9 @@
|
||||
*/
|
||||
package com.intellij.openapi.updateSettings.impl.pluginsAdvertisement;
|
||||
|
||||
import com.intellij.ide.plugins.IdeaPluginDescriptor;
|
||||
import com.intellij.ide.plugins.PluginManagerMain;
|
||||
import com.intellij.ide.plugins.PluginNode;
|
||||
import com.intellij.ide.plugins.*;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.extensions.PluginId;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.updateSettings.impl.DetectedPluginsPanel;
|
||||
@@ -47,7 +46,7 @@ public class PluginsAdvertiserDialog extends DialogWrapper {
|
||||
super(project);
|
||||
myUploadedPlugins = plugins;
|
||||
myAllPlugins = allPlugins;
|
||||
setTitle("Choose Plugins to Install");
|
||||
setTitle("Choose Plugins to Install or Enable");
|
||||
init();
|
||||
}
|
||||
|
||||
@@ -70,12 +69,18 @@ public class PluginsAdvertiserDialog extends DialogWrapper {
|
||||
|
||||
@Override
|
||||
protected void doOKAction() {
|
||||
final Set<IdeaPluginDescriptor> pluginsToEnable = new HashSet<IdeaPluginDescriptor>();
|
||||
final List<PluginNode> nodes = new ArrayList<PluginNode>();
|
||||
for (PluginDownloader downloader : myUploadedPlugins) {
|
||||
if (!mySkippedPlugins.contains(downloader.getPluginId())) {
|
||||
final PluginNode pluginNode = PluginDownloader.createPluginNode(null, downloader);
|
||||
if (pluginNode != null) {
|
||||
nodes.add(pluginNode);
|
||||
final IdeaPluginDescriptor descriptor = PluginManager.getPlugin(PluginId.getId(downloader.getPluginId()));
|
||||
if (descriptor != null) {
|
||||
pluginsToEnable.add(descriptor);
|
||||
} else {
|
||||
final PluginNode pluginNode = PluginDownloader.createPluginNode(null, downloader);
|
||||
if (pluginNode != null) {
|
||||
nodes.add(pluginNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -90,6 +95,9 @@ public class PluginsAdvertiserDialog extends DialogWrapper {
|
||||
catch (IOException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
for (IdeaPluginDescriptor pluginDescriptor : pluginsToEnable) {
|
||||
PluginManagerCore.enablePlugin(pluginDescriptor.getPluginId().getIdString());
|
||||
}
|
||||
super.doOKAction();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user