diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserComp.java index dc66a8a7..aeff930f 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserComp.java @@ -140,7 +140,9 @@ public class BrowserComp extends SimpleComp { Comp.of(() -> createTabPane()), BindingsHelper.persist(Bindings.isNotEmpty(model.getOpenFileSystems())), new BrowserWelcomeComp(model).apply(struc -> StackPane.setAlignment(struc.get(), Pos.CENTER_LEFT)), - BindingsHelper.persist(Bindings.isEmpty(model.getOpenFileSystems())))); + Bindings.createBooleanBinding(() -> { + return model.getOpenFileSystems().size() == 0 && !model.getMode().isChooser(); + }, model.getOpenFileSystems()))); return multi.createRegion(); } diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserModel.java b/app/src/main/java/io/xpipe/app/browser/BrowserModel.java index 1b18cea8..7ee5abd8 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserModel.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserModel.java @@ -168,6 +168,10 @@ public class BrowserModel { // return; // } + if (store == null) { + return; + } + ThreadHelper.runFailableAsync(() -> { OpenFileSystemModel model; diff --git a/app/src/main/java/io/xpipe/app/browser/StandaloneFileBrowser.java b/app/src/main/java/io/xpipe/app/browser/StandaloneFileBrowser.java index 7c6af972..844508d8 100644 --- a/app/src/main/java/io/xpipe/app/browser/StandaloneFileBrowser.java +++ b/app/src/main/java/io/xpipe/app/browser/StandaloneFileBrowser.java @@ -5,6 +5,7 @@ import io.xpipe.app.core.AppI18n; import io.xpipe.app.core.AppWindowHelper; import io.xpipe.app.fxcomps.util.PlatformThread; import io.xpipe.core.impl.FileStore; +import io.xpipe.core.store.ShellStore; import javafx.beans.property.Property; import javafx.stage.FileChooser; import javafx.stage.Window; @@ -13,6 +14,7 @@ import java.io.File; import java.util.List; import java.util.Map; import java.util.function.Consumer; +import java.util.function.Supplier; public class StandaloneFileBrowser { @@ -36,7 +38,7 @@ public class StandaloneFileBrowser { }); } - public static void openSingleFile(Consumer file) { + public static void openSingleFile(Supplier store, Consumer file) { PlatformThread.runLaterIfNeeded(() -> { var model = new BrowserModel(BrowserModel.Mode.SINGLE_FILE_CHOOSER); var comp = new BrowserComp(model) @@ -48,6 +50,7 @@ public class StandaloneFileBrowser { window.close(); }); window.show(); + model.openFileSystemAsync(null, store.get(), null, null); }); } diff --git a/app/src/main/java/io/xpipe/app/comp/store/DsLocalFileBrowseComp.java b/app/src/main/java/io/xpipe/app/comp/store/DsLocalFileBrowseComp.java index 3212a843..d63c1dee 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/DsLocalFileBrowseComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/DsLocalFileBrowseComp.java @@ -10,6 +10,7 @@ import io.xpipe.app.fxcomps.SimpleCompStructure; import io.xpipe.app.fxcomps.util.PlatformThread; import io.xpipe.app.util.JfxHelper; import io.xpipe.core.impl.FileStore; +import io.xpipe.core.impl.LocalStore; import javafx.beans.property.Property; import javafx.beans.value.ObservableValue; import javafx.scene.control.Button; @@ -30,7 +31,7 @@ public class DsLocalFileBrowseComp extends Comp> { var button = new AtomicReference