diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTab.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTab.java index ba216c75849c..297fb464cfef 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTab.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTab.java @@ -83,7 +83,6 @@ class InstalledPluginsTab extends PluginsTab { private @Nullable PluginsGroupComponentWithProgress myInstalledPanel = null; private @Nullable SearchResultPanel myInstalledSearchPanel = null; private final DefaultActionGroup myInstalledSearchGroup; - private boolean myInstalledSearchSetState = true; private final PluginsGroup myBundledUpdateGroup = new PluginsGroup(IdeBundle.message("plugins.configurable.bundled.updates"), PluginsGroupType.BUNDLED_UPDATE); @@ -351,11 +350,6 @@ class InstalledPluginsTab extends PluginsTab { @Override public void hideSearchPanel() { super.hideSearchPanel(); - if (myInstalledSearchSetState) { - for (AnAction action : myInstalledSearchGroup.getChildren(ActionManager.getInstance())) { - ((InstalledSearchOptionAction)action).setState(null); - } - } myPluginModelFacade.getModel().setInvalidFixCallback(null); } @@ -381,32 +375,19 @@ class InstalledPluginsTab extends PluginsTab { }; if (updateAction.myIsSelected) { - for (AnAction action : myInstalledSearchGroup.getChildren(ActionManager.getInstance())) { - if (action != updateAction) { - ((InstalledSearchOptionAction)action).myIsSelected = false; - } - } - queries.add(updateAction.getQuery()); } else { queries.remove(updateAction.getQuery()); } - try { - myInstalledSearchSetState = false; - - String query = StringUtil.join(queries, " "); - searchTextField.setTextIgnoreEvents(query); - if (query.isEmpty()) { - hideSearchPanel(); - } - else { - showSearchPanel(query); - } + String query = StringUtil.join(queries, " "); + searchTextField.setTextIgnoreEvents(query); + if (query.isEmpty()) { + hideSearchPanel(); } - finally { - myInstalledSearchSetState = true; + else { + showSearchPanel(query); } } @@ -651,19 +632,20 @@ class InstalledPluginsTab extends PluginsTab { } } + @Override + public void setQuery(@NotNull String query) { + super.setQuery(query); + SearchQueryParser.Installed parser = new SearchQueryParser.Installed(query); + for (AnAction action : myInstalledSearchGroup.getChildren(ActionManager.getInstance())) { + ((InstalledSearchOptionAction)action).setState(parser); + } + } + @Override protected void handleQuery(@NotNull String query, @NotNull PluginsGroup result, AtomicBoolean runQuery) { int searchIndex = PluginManagerUsageCollector.updateAndGetSearchIndex(); myPluginModelFacade.getModel().setInvalidFixCallback(null); - SearchQueryParser.Installed parser = new SearchQueryParser.Installed(query); - - if (myInstalledSearchSetState) { - for (AnAction action : myInstalledSearchGroup.getChildren(ActionManager.getInstance())) { - ((InstalledSearchOptionAction)action).setState(parser); - } - } - List descriptors = myPluginModelFacade.getModel().getInstalledDescriptors(); if (!parser.vendors.isEmpty()) { diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/newui/SearchResultPanel.kt b/platform/platform-impl/src/com/intellij/ide/plugins/newui/SearchResultPanel.kt index d8b663d0a1fa..96fef306cf35 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/newui/SearchResultPanel.kt +++ b/platform/platform-impl/src/com/intellij/ide/plugins/newui/SearchResultPanel.kt @@ -11,6 +11,7 @@ import com.intellij.openapi.util.Disposer import com.intellij.ui.components.JBScrollPane import com.intellij.util.Alarm import com.intellij.util.SingleAlarm +import com.intellij.util.concurrency.annotations.RequiresEdt import com.intellij.util.ui.EDT import com.intellij.util.ui.JBUI import com.intellij.util.ui.accessibility.AccessibleAnnouncerUtil @@ -77,7 +78,8 @@ abstract class SearchResultPanel( query = "" } - fun setQuery(query: String) { + @RequiresEdt + open fun setQuery(query: String) { assert(EDT.isCurrentThreadEdt()) if (query == this.query) { return