From 522c2c1664afad6dd842de567b3967d5b57f7c0f Mon Sep 17 00:00:00 2001 From: crschnick Date: Tue, 9 Jan 2024 04:20:24 +0000 Subject: [PATCH] Rework image sizes and caches --- .../xpipe/app/browser/BrowserWelcomeComp.java | 2 +- .../comp/store/StandardStoreEntryComp.java | 2 +- .../app/fxcomps/impl/PrettyImageHelper.java | 29 ++++++++++++------- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserWelcomeComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserWelcomeComp.java index 01e74cab..af7b509d 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserWelcomeComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserWelcomeComp.java @@ -81,7 +81,7 @@ public class BrowserWelcomeComp extends SimpleComp { var listBox = new ListBoxViewComp<>(list, list, e -> { var entry = DataStorage.get().getStoreEntryIfPresent(e.getUuid()); var graphic = entry.get().getProvider().getDisplayIconFileName(entry.get().getStore()); - var view = PrettyImageHelper.ofFixedSquare(graphic, 45); + var view = PrettyImageHelper.ofFixed(graphic, 50, 40); view.padding(new Insets(2, 8, 2, 8)); var content = JfxHelper.createNamedEntry(DataStorage.get().getStoreDisplayName(entry.get()), e.getPath(), graphic); diff --git a/app/src/main/java/io/xpipe/app/comp/store/StandardStoreEntryComp.java b/app/src/main/java/io/xpipe/app/comp/store/StandardStoreEntryComp.java index c93c35c8..6e402c56 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StandardStoreEntryComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StandardStoreEntryComp.java @@ -20,7 +20,7 @@ public class StandardStoreEntryComp extends StoreEntryComp { grid.setHgap(7); grid.setVgap(0); - var storeIcon = createIcon(50, 39); + var storeIcon = createIcon(50, 40); grid.add(storeIcon, 0, 0, 1, 2); grid.getColumnConstraints().add(new ColumnConstraints(66)); diff --git a/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettyImageHelper.java b/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettyImageHelper.java index fe002aca..ce8befe4 100644 --- a/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettyImageHelper.java +++ b/app/src/main/java/io/xpipe/app/fxcomps/impl/PrettyImageHelper.java @@ -6,28 +6,37 @@ import io.xpipe.core.store.FileNames; import javafx.beans.property.SimpleStringProperty; import javafx.beans.value.ObservableValue; +import java.util.Optional; + public class PrettyImageHelper { - public static Comp ofFixedSquare(String img, int size) { + public static Optional> rasterizedIfExists(String img, int width, int height) { if (img != null && img.endsWith(".svg")) { var base = FileNames.getBaseName(img); - var renderedName = base + "-" + size + ".png"; - if (AppImages.hasNormalImage(base + "-" + size + ".png")) { - return new PrettyImageComp(new SimpleStringProperty(renderedName), size, size); - } else { - return new PrettySvgComp(new SimpleStringProperty(img), size, size); + var renderedName = base + "-" + height + ".png"; + if (AppImages.hasNormalImage(base + "-" + height + ".png")) { + return Optional.of(new PrettyImageComp(new SimpleStringProperty(renderedName), width, height)); } } - return new PrettyImageComp(new SimpleStringProperty(img), size, size); + return Optional.empty(); + } + + public static Comp ofFixedSquare(String img, int size) { + return ofFixed(img, size, size); } public static Comp ofFixed(String img, int w, int h) { - if (w == h) { - return ofFixedSquare(img, w); + if (img == null) { + return new PrettyImageComp(new SimpleStringProperty(null), w, h); } - return img.endsWith(".svg") ? new PrettySvgComp(new SimpleStringProperty(img), w, h) : new PrettyImageComp(new SimpleStringProperty(img), w, h); + var rasterized = rasterizedIfExists(img, w, h); + if (rasterized.isPresent()) { + return rasterized.get(); + } else { + return img.endsWith(".svg") ? new PrettySvgComp(new SimpleStringProperty(img), w, h) : new PrettyImageComp(new SimpleStringProperty(img), w, h); + } }