diff --git a/platform/editor-ui-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java b/platform/editor-ui-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java index bcfc7805c4ff..c5ca81b54f42 100644 --- a/platform/editor-ui-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java @@ -70,7 +70,10 @@ public interface EditorColorsScheme extends Cloneable, TextAttributesScheme, Sch */ void setEditorFontSize(int fontSize); + @Deprecated FontSize getQuickDocFontSize(); + + @Deprecated void setQuickDocFontSize(@NotNull FontSize fontSize); Font getFont(EditorFontType key); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java index afa24fc62ac3..c6eb98635f66 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationComponent.java @@ -24,6 +24,7 @@ import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; import com.intellij.ide.actions.BaseNavigateToSourceAction; import com.intellij.ide.actions.ExternalJavaDocAction; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.lang.documentation.DocumentationProvider; import com.intellij.lang.documentation.ExternalDocumentationProvider; import com.intellij.openapi.Disposable; @@ -96,6 +97,8 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr private SmartPsiElementPointer myElement; private long myModificationCount; + private static final String QUICK_DOC_FONT_SIZE_PROPERTY = "quick.doc.font.size"; + private final Stack myBackStack = new Stack(); private final Stack myForwardStack = new Stack(); private final ActionToolbar myToolBar; @@ -267,9 +270,7 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr int change = Math.abs(e.getWheelRotation()); boolean increase = e.getWheelRotation() <= 0; - EditorColorsManager colorsManager = EditorColorsManager.getInstance(); - EditorColorsScheme scheme = colorsManager.getGlobalScheme(); - FontSize newFontSize = scheme.getQuickDocFontSize(); + FontSize newFontSize = getQuickDocFontSize(); for (; change > 0; change--) { if (increase) { newFontSize = newFontSize.larger(); @@ -279,11 +280,11 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr } } - if (newFontSize == scheme.getQuickDocFontSize()) { + if (newFontSize == getQuickDocFontSize()) { return; } - scheme.setQuickDocFontSize(newFontSize); + setQuickDocFontSize(newFontSize); applyFontSize(); setFontSizeSliderSize(newFontSize); } @@ -483,9 +484,7 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr if (myIgnoreFontSizeSliderChange) { return; } - EditorColorsManager colorsManager = EditorColorsManager.getInstance(); - EditorColorsScheme scheme = colorsManager.getGlobalScheme(); - scheme.setQuickDocFontSize(FontSize.values()[myFontSizeSlider.getValue()]); + setQuickDocFontSize(FontSize.values()[myFontSizeSlider.getValue()]); applyFontSize(); } }); @@ -499,6 +498,24 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr return result; } + @NotNull + public static FontSize getQuickDocFontSize() { + String strValue = PropertiesComponent.getInstance().getValue(QUICK_DOC_FONT_SIZE_PROPERTY); + if (strValue != null) { + try { + return FontSize.valueOf(strValue); + } + catch (IllegalArgumentException iae) { + // ignore, fall back to default font. + } + } + return FontSize.SMALL; + } + + public void setQuickDocFontSize(@NotNull FontSize fontSize) { + PropertiesComponent.getInstance().setValue(QUICK_DOC_FONT_SIZE_PROPERTY, fontSize.toString()); + } + private void setFontSizeSliderSize(FontSize fontSize) { myIgnoreFontSizeSliderChange = true; try { @@ -659,7 +676,7 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr EditorColorsManager colorsManager = EditorColorsManager.getInstance(); EditorColorsScheme scheme = colorsManager.getGlobalScheme(); - StyleConstants.setFontSize(myFontSizeStyle, JBUI.scale(scheme.getQuickDocFontSize().getSize())); + StyleConstants.setFontSize(myFontSizeStyle, JBUI.scale(getQuickDocFontSize().getSize())); if (Registry.is("documentation.component.editor.font")) { StyleConstants.setFontFamily(myFontSizeStyle, scheme.getEditorFontName()); } @@ -1013,9 +1030,7 @@ public class DocumentationComponent extends JPanel implements Disposable, DataPr return; } - EditorColorsManager colorsManager = EditorColorsManager.getInstance(); - EditorColorsScheme scheme = colorsManager.getGlobalScheme(); - setFontSizeSliderSize(scheme.getQuickDocFontSize()); + setFontSizeSliderSize(getQuickDocFontSize()); mySettingsPanel.setVisible(true); } }