From c2ff618698b40c6434e7df1c058fb39c378ba29e Mon Sep 17 00:00:00 2001 From: crschnick Date: Wed, 14 Jun 2023 08:54:00 +0000 Subject: [PATCH] Improve browser styling --- .../io/xpipe/app/browser/BrowserBookmarkList.java | 14 ++++++++++++-- .../io/xpipe/app/browser/BrowserTransferModel.java | 1 + .../io/xpipe/app/resources/style/browser.css | 12 ++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkList.java b/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkList.java index 21215070..c9f0f13d 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkList.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserBookmarkList.java @@ -18,6 +18,7 @@ import javafx.css.PseudoClass; import javafx.geometry.Point2D; import javafx.scene.AccessibleRole; import javafx.scene.Node; +import javafx.scene.control.OverrunStyle; import javafx.scene.control.TreeCell; import javafx.scene.control.TreeItem; import javafx.scene.control.TreeView; @@ -48,7 +49,7 @@ final class BrowserBookmarkList extends SimpleComp { view.setShowRoot(false); view.getStyleClass().add("bookmark-list"); view.setCellFactory(param -> { - return new StoreCell(); + return new StoreCell(view); }); PlatformThread.sync(model.getSelected()).addListener((observable, oldValue, newValue) -> { @@ -97,10 +98,11 @@ final class BrowserBookmarkList extends SimpleComp { private final Node imageView = new PrettyImageComp(img, 20, 20).createRegion(); private final BooleanProperty busy = new SimpleBooleanProperty(false); - private StoreCell() { + private StoreCell(TreeView t) { disableProperty().bind(busy); setAccessibleRole(AccessibleRole.BUTTON); setGraphic(imageView); + setTextOverrun(OverrunStyle.ELLIPSIS); addEventHandler(DragEvent.DRAG_OVER, mouseEvent -> { if (getItem() == null) { return; @@ -146,6 +148,14 @@ final class BrowserBookmarkList extends SimpleComp { .styleClass("expand-button") .apply(struc -> struc.get().setFocusTraversable(false)); setDisclosureNode(button.createRegion()); + + indexProperty().addListener((observable, oldValue, newValue) -> { + if (newValue.intValue() == 0) { + getStyleClass().add("first"); + } else { + getStyleClass().remove("first"); + } + }); } @Override diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java b/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java index 1c6ddecd..d37fc061 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java @@ -59,6 +59,7 @@ public class BrowserTransferModel { item.finishedDownload.set(true); } catch (Throwable t) { ErrorEvent.fromThrowable(t).handle(); + items.remove(item); } }); }); diff --git a/app/src/main/resources/io/xpipe/app/resources/style/browser.css b/app/src/main/resources/io/xpipe/app/resources/style/browser.css index 4d2ce810..bbceff46 100644 --- a/app/src/main/resources/io/xpipe/app/resources/style/browser.css +++ b/app/src/main/resources/io/xpipe/app/resources/style/browser.css @@ -42,6 +42,18 @@ -fx-opacity: 0.5; } +.bookmark-list .tree-cell { + -fx-background-radius: 5px; + -fx-padding: 8px 8px 8px 3px; + -fx-background-insets: 5px 5px 5px 5px; +} + +.bookmark-list .tree-cell.first { + -fx-padding: 12px 8px 8px 3px; + -fx-background-insets: 9px 5px 5px 5px; + +} + .browser .bookmark-list { -fx-border-width: 0; }