mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-09-25 09:55:52 +00:00
Various fixes [stage]
This commit is contained in:
+1
-4
@@ -43,10 +43,7 @@ public class BrowseInNativeManagerActionProvider implements BrowserActionProvide
|
||||
for (BrowserEntry entry : getEntries()) {
|
||||
var e = entry.getRawFileEntry().getPath();
|
||||
var localFile = sc.getLocalSystemAccess().translateToLocalSystemPath(e);
|
||||
try (var local = LocalShell.getShell().start()) {
|
||||
DesktopHelper.browsePathRemote(
|
||||
local, localFile, entry.getRawFileEntry().getKind());
|
||||
}
|
||||
DesktopHelper.browseFileInDirectory(localFile.asLocalPath());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
package io.xpipe.app.browser.action.impl;
|
||||
|
||||
import io.xpipe.app.browser.action.BrowserAction;
|
||||
import io.xpipe.app.browser.action.BrowserActionProvider;
|
||||
import io.xpipe.app.browser.file.BrowserEntry;
|
||||
import io.xpipe.app.browser.file.BrowserFileSystemTabModel;
|
||||
import io.xpipe.app.ext.FileKind;
|
||||
import io.xpipe.app.process.CommandBuilder;
|
||||
import io.xpipe.app.process.LocalShell;
|
||||
import io.xpipe.app.process.ShellControl;
|
||||
import io.xpipe.app.util.DesktopHelper;
|
||||
import io.xpipe.core.OsType;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
import lombok.extern.jackson.Jacksonized;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class OpenFileNativeManagerActionProvider implements BrowserActionProvider {
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return "openFileNativeManager";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isApplicable(BrowserFileSystemTabModel model, List<BrowserEntry> entries) {
|
||||
if (model.getFileSystem().getShell().isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var sc = model.getFileSystem().getShell().orElseThrow();
|
||||
return sc.getLocalSystemAccess().supportsFileSystemAccess();
|
||||
}
|
||||
|
||||
@Jacksonized
|
||||
@SuperBuilder
|
||||
public static class Action extends BrowserAction {
|
||||
|
||||
@Override
|
||||
public void executeImpl() throws Exception {
|
||||
ShellControl sc = model.getFileSystem().getShell().get();
|
||||
for (BrowserEntry entry : getEntries()) {
|
||||
var e = entry.getRawFileEntry().getPath();
|
||||
var localFile = sc.getLocalSystemAccess().translateToLocalSystemPath(e);
|
||||
DesktopHelper.browseFileInDirectory(localFile.asLocalPath());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
@@ -7,6 +7,7 @@ import io.xpipe.app.browser.file.BrowserFileSystemTabModel;
|
||||
import io.xpipe.app.browser.menu.BrowserMenuCategory;
|
||||
import io.xpipe.app.browser.menu.BrowserMenuLeafProvider;
|
||||
import io.xpipe.app.core.AppI18n;
|
||||
import io.xpipe.app.platform.LabelGraphic;
|
||||
import io.xpipe.core.OsType;
|
||||
|
||||
import javafx.beans.value.ObservableValue;
|
||||
@@ -38,4 +39,9 @@ public class BrowseInNativeManagerMenuProvider implements BrowserMenuLeafProvide
|
||||
public boolean acceptsEmptySelection() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LabelGraphic getIcon() {
|
||||
return new LabelGraphic.IconGraphic("mdi2f-folder-eye-outline");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ public class DesktopHelper {
|
||||
: "org.freedesktop.FileManager1.ShowItems";
|
||||
var args = List.of(
|
||||
"dbus-send", "--session", "--print-reply", "--dest=org.freedesktop.FileManager1", "--type=method_call",
|
||||
"/org/freedesktop/FileManager1", action, "array:string:\"file://" + file + "\"", "string:\"\""
|
||||
"/org/freedesktop/FileManager1", action, "array:string:file://" + file, "string:"
|
||||
);
|
||||
try {
|
||||
var success = LocalExec.readStdoutIfPossible(args.toArray(String[]::new)).isPresent();
|
||||
|
||||
@@ -153,6 +153,7 @@ open module io.xpipe.app {
|
||||
ToggleActionProvider,
|
||||
OpenTerminalInDirectoryMenuProvider,
|
||||
OpenNativeFileDetailsMenuProvider,
|
||||
BrowseInNativeManagerMenuProvider,
|
||||
BrowseInNativeManagerActionProvider,
|
||||
ApplyFileEditActionProvider,
|
||||
TransferFilesActionProvider,
|
||||
|
||||
Reference in New Issue
Block a user