Rework image sizes and caches

This commit is contained in:
crschnick 2024-01-09 04:20:24 +00:00
parent e4d3eb2a3d
commit 522c2c1664
3 changed files with 21 additions and 12 deletions

View file

@ -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);

View file

@ -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));

View file

@ -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<Comp<?>> 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);
}
}