From ca84b90dbdad440369c64b39b05ca962f619f532 Mon Sep 17 00:00:00 2001 From: crschnick Date: Sat, 30 Dec 2023 09:02:28 +0000 Subject: [PATCH] Rework file browser open and it improve ssh config support --- .../main/java/io/xpipe/app/browser/BrowserModel.java | 10 ++++++---- .../main/java/io/xpipe/app/launcher/LauncherInput.java | 2 +- .../ext/base/browser/OpenDirectoryInNewTabAction.java | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) 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 e2afe8717..0490801e8 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserModel.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserModel.java @@ -4,8 +4,9 @@ import io.xpipe.app.fxcomps.util.BindingsHelper; import io.xpipe.app.storage.DataStorage; import io.xpipe.app.storage.DataStoreEntryRef; import io.xpipe.app.util.BooleanScope; -import io.xpipe.app.util.ThreadHelper; import io.xpipe.app.util.FileReference; +import io.xpipe.app.util.ThreadHelper; +import io.xpipe.core.store.FileNames; import io.xpipe.core.store.FileSystemStore; import javafx.beans.property.BooleanProperty; import javafx.beans.property.Property; @@ -19,6 +20,7 @@ import lombok.Setter; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; +import java.util.function.Function; @Getter public class BrowserModel { @@ -54,7 +56,7 @@ public class BrowserModel { public void restoreState(BrowserSavedState.Entry e, BooleanProperty busy) { var storageEntry = DataStorage.get().getStoreEntryIfPresent(e.getUuid()); storageEntry.ifPresent(entry -> { - openFileSystemAsync(entry.ref(), e.getPath(), busy); + openFileSystemAsync(entry.ref(), model -> e.getPath(), busy); }); } @@ -113,7 +115,7 @@ public class BrowserModel { }); } - public void openFileSystemAsync(DataStoreEntryRef store, String path, BooleanProperty externalBusy) { + public void openFileSystemAsync(DataStoreEntryRef store, Function path, BooleanProperty externalBusy) { if (store == null) { return; } @@ -133,7 +135,7 @@ public class BrowserModel { } } if (path != null) { - model.initWithGivenDirectory(path); + model.initWithGivenDirectory(FileNames.toDirectory(path.apply(model))); } else { model.initWithDefaultDirectory(); } diff --git a/app/src/main/java/io/xpipe/app/launcher/LauncherInput.java b/app/src/main/java/io/xpipe/app/launcher/LauncherInput.java index 466961e13..7fb8b2dde 100644 --- a/app/src/main/java/io/xpipe/app/launcher/LauncherInput.java +++ b/app/src/main/java/io/xpipe/app/launcher/LauncherInput.java @@ -116,7 +116,7 @@ public abstract class LauncherInput { var dir = Files.isDirectory(file) ? file : file.getParent(); AppLayoutModel.get().selectBrowser(); - BrowserModel.DEFAULT.openFileSystemAsync( DataStorage.get().local().ref(), dir.toString(), null); + BrowserModel.DEFAULT.openFileSystemAsync( DataStorage.get().local().ref(), model -> dir.toString(), null); } @Override diff --git a/ext/base/src/main/java/io/xpipe/ext/base/browser/OpenDirectoryInNewTabAction.java b/ext/base/src/main/java/io/xpipe/ext/base/browser/OpenDirectoryInNewTabAction.java index a833502b0..458cd32ae 100644 --- a/ext/base/src/main/java/io/xpipe/ext/base/browser/OpenDirectoryInNewTabAction.java +++ b/ext/base/src/main/java/io/xpipe/ext/base/browser/OpenDirectoryInNewTabAction.java @@ -16,7 +16,7 @@ public class OpenDirectoryInNewTabAction implements LeafAction { model.getBrowserModel() .openFileSystemAsync( model.getEntry(), - entries.get(0).getRawFileEntry().getPath(), + m -> entries.get(0).getRawFileEntry().getPath(), null); }