diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserFileChooserSessionComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserFileChooserSessionComp.java index 27852dd84..87efb6be2 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserFileChooserSessionComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserFileChooserSessionComp.java @@ -143,7 +143,6 @@ public class BrowserFileChooserSessionComp extends ModalOverlayContentComp { var vertical = new VerticalComp(List.of(bookmarkTopBar, bookmarksContainer)).styleClass("left"); var splitPane = new LeftSplitPaneComp(vertical, stack) .withInitialWidth(AppLayoutModel.get().getSavedState().getBrowserConnectionsWidth()) - .styleClass("background") .apply(struc -> { struc.getLeft().setMinWidth(200); struc.getLeft().setMaxWidth(500); diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserFileChooserSessionModel.java b/app/src/main/java/io/xpipe/app/browser/BrowserFileChooserSessionModel.java index cd3e54924..949ee6248 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserFileChooserSessionModel.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserFileChooserSessionModel.java @@ -14,6 +14,7 @@ import io.xpipe.core.util.FailableFunction; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.FXCollections; +import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import lombok.Getter; @@ -40,8 +41,10 @@ public class BrowserFileChooserSessionModel extends BrowserAbstractSessionModel< return; } - var l = DerivedObservableList.wrap(fileSelection, true); - l.bindContent(newValue.getFileList().getSelection()); + fileSelection.setAll(newValue.getFileList().getSelection()); + newValue.getFileList().getSelection().addListener((ListChangeListener) c -> { + fileSelection.setAll(newValue.getFileList().getSelection()); + }); }); } diff --git a/app/src/main/java/io/xpipe/app/browser/file/BrowserHistoryTabComp.java b/app/src/main/java/io/xpipe/app/browser/file/BrowserHistoryTabComp.java index c1fab5b45..535a7f423 100644 --- a/app/src/main/java/io/xpipe/app/browser/file/BrowserHistoryTabComp.java +++ b/app/src/main/java/io/xpipe/app/browser/file/BrowserHistoryTabComp.java @@ -8,6 +8,7 @@ import io.xpipe.app.core.AppI18n; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.storage.DataStorage; import io.xpipe.app.util.DerivedObservableList; +import io.xpipe.app.util.DocumentationLink; import io.xpipe.app.util.LabelGraphic; import io.xpipe.app.util.ThreadHelper; @@ -113,15 +114,26 @@ public class BrowserHistoryTabComp extends SimpleComp { } private Comp createEmptyDisplay() { - var intro = new IntroComp( + var docs = new IntroComp( + "browserWelcomeDocs", + new LabelGraphic.IconGraphic("mdi2b-book-open-variant")); + docs.setButtonAction(() -> { + DocumentationLink.INDEX.open(); + }); + docs.setButtonDefault(true); + + var open = new IntroComp( "browserWelcomeEmpty", new LabelGraphic.CompGraphic(PrettyImageHelper.ofSpecificFixedSize("graphics/Hips.svg", 100, 122))); - intro.setButtonAction(() -> { + open.setButtonAction(() -> { BrowserFullSessionModel.DEFAULT.openFileSystemAsync( DataStorage.get().local().ref(), null, null); }); - intro.setButtonDefault(true); - return intro; + + var v = new VerticalComp(List.of(docs, open)); + v.spacing(70); + v.apply(struc -> struc.get().setAlignment(Pos.CENTER)); + return v; } private Comp entryButton(BrowserHistorySavedState.Entry e, BooleanProperty disable) { diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreIdentitiesIntroComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreIdentitiesIntroComp.java index f16461126..292f072b3 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreIdentitiesIntroComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreIdentitiesIntroComp.java @@ -97,7 +97,7 @@ public class StoreIdentitiesIntroComp extends SimpleComp { fi.setIconSize(80); var img = new StackPane(fi); img.setPrefWidth(100); - img.setPrefHeight(150); + img.setPrefHeight(120); var text = new VBox(title, importDesc); text.setSpacing(5); text.setAlignment(Pos.CENTER_LEFT); diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreQuickAccessButtonComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreQuickAccessButtonComp.java index d6a4e780b..2df011739 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreQuickAccessButtonComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreQuickAccessButtonComp.java @@ -14,6 +14,7 @@ import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; import java.util.ArrayList; +import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; public class StoreQuickAccessButtonComp extends Comp> { @@ -83,13 +84,17 @@ public class StoreQuickAccessButtonComp extends Comp> { public CompStructure