diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.form b/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.form index 23d7bf2ea873..bf543f19e594 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.form +++ b/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.form @@ -1,6 +1,6 @@
- + @@ -11,7 +11,7 @@ - + @@ -40,7 +40,7 @@ - + @@ -53,12 +53,20 @@ - + + + + + + + + + diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java b/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java index 6869262765c4..497dae2e9f66 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java +++ b/xml/impl/src/com/intellij/ide/browsers/BrowserSettingsPanel.java @@ -25,6 +25,7 @@ import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.util.Comparing; import com.intellij.ui.ListCellRendererWrapper; import com.intellij.ui.TitledSeparator; +import com.intellij.ui.components.JBCheckBox; import com.intellij.util.Function; import com.intellij.util.PathUtil; import com.intellij.util.ui.ColumnInfo; @@ -144,6 +145,7 @@ final class BrowserSettingsPanel { private JComponent browsersTable; private ComboBox defaultBrowserPolicyComboBox; + private JBCheckBox showBrowserHover; private TableModelEditor browsersEditor; @@ -321,7 +323,9 @@ final class BrowserSettingsPanel { GeneralSettings generalSettings = GeneralSettings.getInstance(); DefaultBrowserPolicy defaultBrowserPolicy = getDefaultBrowser(); - if (browserManager.getDefaultBrowserPolicy() != defaultBrowserPolicy || generalSettings.isConfirmExtractFiles() != confirmExtractFiles.isSelected()) { + if (browserManager.getDefaultBrowserPolicy() != defaultBrowserPolicy || + generalSettings.isConfirmExtractFiles() != confirmExtractFiles.isSelected() || + browserManager.isShowBrowserHover() != showBrowserHover.isSelected()) { return true; } @@ -345,6 +349,7 @@ final class BrowserSettingsPanel { settings.setConfirmExtractFiles(confirmExtractFiles.isSelected()); WebBrowserManager browserManager = WebBrowserManager.getInstance(); + browserManager.setShowBrowserHover(showBrowserHover.isSelected()); browserManager.defaultBrowserPolicy = getDefaultBrowser(); browserManager.setList(browsersEditor.apply()); } @@ -354,14 +359,16 @@ final class BrowserSettingsPanel { } public void reset() { - DefaultBrowserPolicy defaultBrowserPolicy = WebBrowserManager.getInstance().getDefaultBrowserPolicy(); + final WebBrowserManager browserManager = WebBrowserManager.getInstance(); + DefaultBrowserPolicy defaultBrowserPolicy = browserManager.getDefaultBrowserPolicy(); DefaultBrowserPolicy effectiveDefaultBrowserPolicy = defaultBrowserPolicy == DefaultBrowserPolicy.SYSTEM && !BrowserLauncherAppless.canUseSystemDefaultBrowserPolicy() ? DefaultBrowserPolicy.ALTERNATIVE : defaultBrowserPolicy; defaultBrowserPolicyComboBox.setSelectedItem(effectiveDefaultBrowserPolicy); GeneralSettings settings = GeneralSettings.getInstance(); confirmExtractFiles.setSelected(settings.isConfirmExtractFiles()); - browsersEditor.reset(WebBrowserManager.getInstance().getList()); + showBrowserHover.setSelected(browserManager.isShowBrowserHover()); + browsersEditor.reset(browserManager.getList()); customPathValue = settings.getBrowserPath(); alternativeBrowserPathField.setEnabled(effectiveDefaultBrowserPolicy == DefaultBrowserPolicy.ALTERNATIVE); diff --git a/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java b/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java index 0b2ba6cb18c1..6aa389382484 100644 --- a/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java +++ b/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java @@ -51,7 +51,7 @@ public class WebBrowserManager extends SimpleModificationTracker implements Pers ); private List browsers; - + private boolean myShowBrowserHover = true; DefaultBrowserPolicy defaultBrowserPolicy = DefaultBrowserPolicy.SYSTEM; public WebBrowserManager() { @@ -103,6 +103,9 @@ public class WebBrowserManager extends SimpleModificationTracker implements Pers if (defaultBrowserPolicy != DefaultBrowserPolicy.SYSTEM) { state.setAttribute("default", defaultBrowserPolicy.name().toLowerCase(Locale.ENGLISH)); } + if (!myShowBrowserHover) { + state.setAttribute("showHover", "false"); + } for (ConfigurableWebBrowser browser : browsers) { Element entry = new Element("browser"); @@ -206,6 +209,8 @@ public class WebBrowserManager extends SimpleModificationTracker implements Pers } } + myShowBrowserHover = !"false".equals(element.getAttributeValue("showHover")); + List list = new ArrayList(); for (Element child : element.getChildren("browser")) { BrowserFamily family = readFamily(child.getAttributeValue("family")); @@ -388,4 +393,12 @@ public class WebBrowserManager extends SimpleModificationTracker implements Pers } return null; } + + public void setShowBrowserHover(boolean showBrowserHover) { + myShowBrowserHover = showBrowserHover; + } + + public boolean isShowBrowserHover() { + return myShowBrowserHover; + } } \ No newline at end of file diff --git a/xml/impl/src/com/intellij/ide/browsers/actions/OpenInBrowserBaseGroupAction.java b/xml/impl/src/com/intellij/ide/browsers/actions/OpenInBrowserBaseGroupAction.java index 5298e0e7b90e..446462185774 100644 --- a/xml/impl/src/com/intellij/ide/browsers/actions/OpenInBrowserBaseGroupAction.java +++ b/xml/impl/src/com/intellij/ide/browsers/actions/OpenInBrowserBaseGroupAction.java @@ -80,7 +80,8 @@ public abstract class OpenInBrowserBaseGroupAction extends ComputableActionGroup @Override public void update(@NotNull AnActionEvent e) { - e.getPresentation().setVisible(!WebBrowserManager.getInstance().getActiveBrowsers().isEmpty()); + final WebBrowserManager browserManager = WebBrowserManager.getInstance(); + e.getPresentation().setVisible(browserManager.isShowBrowserHover() && !browserManager.getActiveBrowsers().isEmpty()); } } } \ No newline at end of file