mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-08-26 11:16:29 +00:00
Improve link handling in browser
This commit is contained in:
@@ -189,7 +189,7 @@ public class BrowserFileListCompEntry {
|
||||
&& cb.getBaseDirectory()
|
||||
.getPath()
|
||||
.equals(model.getFileSystemModel().getCurrentDirectory().getPath())
|
||||
&& (item == null || item.getRawFileEntry().getKind() != FileKind.DIRECTORY)) {
|
||||
&& (item == null || item.getRawFileEntry().resolved().getKind() != FileKind.DIRECTORY)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -298,12 +298,10 @@ public class BrowserFileListCompEntry {
|
||||
return;
|
||||
}
|
||||
|
||||
model.getDraggedOverEmpty()
|
||||
.setValue(item == null || item.getRawFileEntry().getKind() != FileKind.DIRECTORY);
|
||||
var isDir = item != null && item.getRawFileEntry().resolved().getKind() == FileKind.DIRECTORY;
|
||||
model.getDraggedOverEmpty().setValue(!isDir);
|
||||
model.getDraggedOverDirectory().setValue(item);
|
||||
|
||||
|
||||
if (item == null || item.getRawFileEntry().getKind() != FileKind.DIRECTORY) {
|
||||
if (!isDir) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -321,7 +319,7 @@ public class BrowserFileListCompEntry {
|
||||
}
|
||||
|
||||
model.getFileSystemModel()
|
||||
.cdAsync(item.getRawFileEntry().getPath());
|
||||
.cdAsync(item.getRawFileEntry().resolved().getPath());
|
||||
},
|
||||
Duration.ofMillis(500));
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ public class BrowserQuickAccessContextMenu extends ContextMenu {
|
||||
BooleanScope.executeExclusive(model.getBusy(), () -> {
|
||||
var dir = entry.getRawFileEntry().resolved().getPath();
|
||||
try (var stream = model.getFileSystem().listFiles(model.getFileSystem(), dir)) {
|
||||
var l = stream.map(fileEntry -> fileEntry.resolved()).toList();
|
||||
var l = stream.map(fileEntry -> fileEntry).toList();
|
||||
// Wait until all files are listed, i.e. do not skip the stream elements
|
||||
list.addAll(l.subList(0, Math.min(l.size(), 150)));
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package io.xpipe.app.browser.menu;
|
||||
|
||||
import io.xpipe.app.browser.file.BrowserEntry;
|
||||
import io.xpipe.app.browser.file.BrowserFileSystemTabModel;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface BrowserApplicationPathMenuProvider extends BrowserMenuItemProvider {
|
||||
|
||||
String getExecutable();
|
||||
@@ -18,6 +21,11 @@ public interface BrowserApplicationPathMenuProvider extends BrowserMenuItemProvi
|
||||
model.getFileSystem().getShell().get().view().isInPath(getExecutable(), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
default boolean isApplicable(BrowserFileSystemTabModel model, List<BrowserEntry> entries) {
|
||||
return model.getFileSystem().getShell().isPresent();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SneakyThrows
|
||||
default boolean isActive(BrowserFileSystemTabModel model) {
|
||||
|
||||
Reference in New Issue
Block a user