From 09442e164f8dc7f63be30b34308870e52965d006 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Thu, 23 Oct 2014 20:14:53 +0400 Subject: [PATCH] IDEA-131783 debugger: icon value is partly shown in variables view --- .../debugger/settings/IconObjectRenderer.java | 9 +++------ .../com/intellij/rt/debugger/ImageSerializer.java | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java b/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java index 02fa84ef4f2c..26ddb3ff8155 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java @@ -23,8 +23,8 @@ import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl; import com.intellij.debugger.ui.tree.ValueDescriptor; import com.intellij.debugger.ui.tree.render.CompoundReferenceRenderer; import com.intellij.debugger.ui.tree.render.DescriptorLabelListener; +import com.intellij.icons.AllIcons; import com.intellij.ui.components.JBLabel; -import com.intellij.util.IconUtil; import com.intellij.xdebugger.frame.XFullValueEvaluator; import org.jetbrains.annotations.NotNull; @@ -52,11 +52,8 @@ class IconObjectRenderer extends CompoundReferenceRenderer implements FullValueE @Override public Icon calcValueIcon(ValueDescriptor descriptor, EvaluationContext evaluationContext, DescriptorLabelListener listener) throws EvaluateException { - ImageIcon icon = ImageObjectRenderer.getIcon(evaluationContext, descriptor.getValue(), "iconToBytes"); - if (icon != null) { - return IconUtil.cropIcon(icon, 16, 16); - } - return null; + String getterName = AllIcons.Debugger.Value.getIconHeight() <= 16 ? "iconToBytesPreviewNormal" : "iconToBytesPreviewRetina"; + return ImageObjectRenderer.getIcon(evaluationContext, descriptor.getValue(), getterName); } @NotNull diff --git a/java/java-runtime/src/com/intellij/rt/debugger/ImageSerializer.java b/java/java-runtime/src/com/intellij/rt/debugger/ImageSerializer.java index 5b727483a0f9..ad38e2c87103 100644 --- a/java/java-runtime/src/com/intellij/rt/debugger/ImageSerializer.java +++ b/java/java-runtime/src/com/intellij/rt/debugger/ImageSerializer.java @@ -35,6 +35,21 @@ public class ImageSerializer { return baos.toByteArray(); } + public static byte[] iconToBytesPreview(Icon icon, int maxSize) throws IOException { + if (icon.getIconHeight() <= maxSize && icon.getIconWidth() <= maxSize) { + return imageToBytes(toImage(icon)); + } + return null; + } + + public static byte[] iconToBytesPreviewNormal(Icon icon) throws IOException { + return iconToBytesPreview(icon, 16); + } + + public static byte[] iconToBytesPreviewRetina(Icon icon) throws IOException { + return iconToBytesPreview(icon, 32); + } + public static byte[] iconToBytes(Icon icon) throws IOException { return imageToBytes(toImage(icon)); }