Various fixes [stage]

This commit is contained in:
crschnick
2025-11-06 11:06:49 +00:00
parent ec06f017ff
commit 681563cb41
6 changed files with 59 additions and 6 deletions
@@ -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());
}
}
}
@@ -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());
}
}
}
}
@@ -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();
+1
View File
@@ -153,6 +153,7 @@ open module io.xpipe.app {
ToggleActionProvider,
OpenTerminalInDirectoryMenuProvider,
OpenNativeFileDetailsMenuProvider,
BrowseInNativeManagerMenuProvider,
BrowseInNativeManagerActionProvider,
ApplyFileEditActionProvider,
TransferFilesActionProvider,
+1 -1
View File
@@ -1 +1 @@
19.0-10
19.0-11