allow disabling browser hover in editor

#WEB-461 fixed
This commit is contained in:
Dennis Ushakov
2014-11-28 16:15:31 +03:00
parent 237ba73f28
commit ba152a9e61
4 changed files with 38 additions and 9 deletions
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.intellij.ide.browsers.BrowserSettingsPanel">
<grid id="27dc6" binding="root" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="27dc6" binding="root" layout-manager="GridLayoutManager" row-count="4" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="20" y="20" width="595" height="400"/>
@@ -11,7 +11,7 @@
<grid id="df7ca" binding="defaultBrowserPanel" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
<grid row="1" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
@@ -40,7 +40,7 @@
</grid>
<component id="c38a1" class="javax.swing.JComponent" binding="browsersTable" custom-create="true">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
<grid row="0" column="0" row-span="1" col-span="2" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
</component>
<component id="b18a3" class="javax.swing.JCheckBox" binding="confirmExtractFiles" default-binding="true">
@@ -53,12 +53,20 @@
</component>
<component id="d1faa" class="javax.swing.JButton" binding="clearExtractedFiles" default-binding="true">
<constraints>
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
<grid row="3" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Clear extracted files"/>
</properties>
</component>
<component id="beb5b" class="com.intellij.ui.components.JBCheckBox" binding="showBrowserHover">
<constraints>
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Show browser popup in editor"/>
</properties>
</component>
</children>
</grid>
<buttonGroups>
@@ -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<ConfigurableWebBrowser> 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);
@@ -51,7 +51,7 @@ public class WebBrowserManager extends SimpleModificationTracker implements Pers
);
private List<ConfigurableWebBrowser> 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<ConfigurableWebBrowser> list = new ArrayList<ConfigurableWebBrowser>();
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;
}
}
@@ -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());
}
}
}