mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-04-22 15:40:31 -04:00
Various fixes
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package io.xpipe.app.browser.file;
|
||||
|
||||
import io.xpipe.app.browser.BrowserFullSessionModel;
|
||||
import io.xpipe.app.core.AppSystemInfo;
|
||||
import io.xpipe.app.prefs.AppPrefs;
|
||||
import io.xpipe.app.util.BooleanScope;
|
||||
import io.xpipe.app.util.GlobalTimer;
|
||||
@@ -8,6 +9,7 @@ import io.xpipe.app.util.ThreadHelper;
|
||||
import io.xpipe.app.ext.FileKind;
|
||||
|
||||
import io.xpipe.core.FilePath;
|
||||
import io.xpipe.core.OsType;
|
||||
import javafx.css.PseudoClass;
|
||||
import javafx.geometry.Point2D;
|
||||
import javafx.scene.Node;
|
||||
@@ -19,6 +21,7 @@ import javafx.scene.input.*;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.InvalidPathException;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
@@ -151,6 +154,18 @@ public class BrowserFileListCompEntry {
|
||||
private boolean acceptsDrop(DragEvent event) {
|
||||
// Accept drops from outside the app window
|
||||
if (event.getGestureSource() == null) {
|
||||
// Don't accept 7zip temp files
|
||||
if (OsType.ofLocal() == OsType.WINDOWS && event.getDragboard().getFiles().stream().anyMatch(file -> {
|
||||
try {
|
||||
return file.toPath().toRealPath().startsWith(AppSystemInfo.ofWindows().getTemp()) &&
|
||||
file.toPath().getFileName().toString().matches("7z[A-Z0-9]+");
|
||||
} catch (IOException ignored) {
|
||||
return false;
|
||||
}
|
||||
})) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -508,7 +508,7 @@ public class BrowserFileTransferOperation {
|
||||
outputStream.flush();
|
||||
inputStream.transferTo(OutputStream.nullOutputStream());
|
||||
|
||||
var incomplete = readCount.get() < expectedFileSize;
|
||||
var incomplete = !killStreams.get() && readCount.get() < expectedFileSize;
|
||||
if (incomplete) {
|
||||
throw new IOException("Source file " + sourceFile + " input size mismatch: Expected " + expectedFileSize + " but got " + readCount.get() + ". Did the source file get updated?");
|
||||
}
|
||||
|
||||
@@ -35,12 +35,10 @@ import java.util.List;
|
||||
public class OptionsComp extends Comp<CompStructure<VBox>> {
|
||||
|
||||
private final List<Entry> entries;
|
||||
private final Validator validator;
|
||||
private final List<Check> checks;
|
||||
|
||||
public OptionsComp(List<Entry> entries, Validator validator, List<Check> checks) {
|
||||
public OptionsComp(List<Entry> entries, List<Check> checks) {
|
||||
this.entries = entries;
|
||||
this.validator = validator;
|
||||
this.checks = checks;
|
||||
}
|
||||
|
||||
|
||||
@@ -83,6 +83,12 @@ public class StoreCreationComp extends ModalOverlayContentComp {
|
||||
full.sub(d.getOptions());
|
||||
full.sub(propOptions);
|
||||
|
||||
// Start focus on top for newly created stores
|
||||
if (model.getExistingEntry() == null) {
|
||||
d.getOptions().disableFirstIncompleteFocus();
|
||||
full.disableFirstIncompleteFocus();
|
||||
}
|
||||
|
||||
var region = full.buildComp().styleClass("store-creator-options").createRegion();
|
||||
valSp.getChildren().add(region);
|
||||
|
||||
|
||||
@@ -44,6 +44,12 @@ public class OptionsBuilder {
|
||||
private Comp<?> comp;
|
||||
private Comp<?> lastCompHeadReference;
|
||||
private ObservableValue<String> lastNameReference;
|
||||
private boolean focusFirstIncomplete = true;
|
||||
|
||||
public OptionsBuilder disableFirstIncompleteFocus() {
|
||||
focusFirstIncomplete = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OptionsBuilder() {
|
||||
this.ownValidator = new SimpleValidator();
|
||||
@@ -146,7 +152,9 @@ public class OptionsBuilder {
|
||||
public OptionsBuilder sub(OptionsBuilder builder, Property<?> prop) {
|
||||
props.addAll(builder.props);
|
||||
allValidators.add(builder.buildEffectiveValidator());
|
||||
allChecks.addAll(builder.allChecks);
|
||||
if (builder.focusFirstIncomplete) {
|
||||
allChecks.addAll(builder.allChecks);
|
||||
}
|
||||
if (prop != null) {
|
||||
props.add(prop);
|
||||
}
|
||||
@@ -410,7 +418,7 @@ public class OptionsBuilder {
|
||||
|
||||
public OptionsComp buildComp() {
|
||||
finishCurrent();
|
||||
var comp = new OptionsComp(entries, buildEffectiveValidator(), allChecks);
|
||||
var comp = new OptionsComp(entries, focusFirstIncomplete ? allChecks : List.of());
|
||||
for (Augment<CompStructure<VBox>> augment : augments) {
|
||||
comp.apply(augment);
|
||||
}
|
||||
|
||||
23
dist/changelog/19.0.md
vendored
23
dist/changelog/19.0.md
vendored
@@ -16,17 +16,36 @@ Lastly, there are also now bug bounties available, meaning that you can get an X
|
||||
|
||||
## Other
|
||||
|
||||
- Add support for flatpak variants of various editors and terminals
|
||||
- Add support for AIX systems
|
||||
- Add ability to read files via sudo if current user did not have read permission for a file
|
||||
- Fix connection entries being able to be renamed to a blank string
|
||||
- Add ability to drag and drop files into navigation bar to move up directories
|
||||
- Add ability to move categories to different parents
|
||||
- The accent color of your system appearance now applies to all UI elements
|
||||
- Bump to JDK 25 and JavaFX 25
|
||||
- Rework password choice order
|
||||
- Add setting for mstsc RDP client to use smart sizing
|
||||
- Add traditional chinese translations
|
||||
- Add support for Zed on Windows
|
||||
|
||||
## Fixes
|
||||
|
||||
- Fix vietnamese translations not being listed
|
||||
- Fix bitwarden sync not refreshing xpipe cache for bitwarden passwords
|
||||
- Fix sudo auth failing on legacy systems where openssl did not support certain options
|
||||
- Fix VNC scan adding localhost as a connection on macOS
|
||||
- Fix VNC scan adding localhost as a connection on macOS
|
||||
- Fix system state info for some VMs and containers now showing
|
||||
- Fix fish shell v4 with init scripts failing to launch
|
||||
- Fix SSH MOTD errors with fish
|
||||
- Fix various NullPointers
|
||||
- Fix kitty launch race conditions sometimes breaking socket
|
||||
- Fix connection entries being able to be renamed to a blank string
|
||||
- Fix apple container integration freezing when recommended kernel was not installed
|
||||
- Fix local KVM integration constantly bringing up polkit auth window
|
||||
- Fix super key not being handled in VNC client
|
||||
- Fix Proxmox VNC action not setting empty password
|
||||
- Fix identities being moved to initial category when being editing
|
||||
- Fix Remmina RDP integration not supporting user domain prefix
|
||||
- Fix connection entry valid state sometimes not updating immediately when edited
|
||||
- Fix Linux FreeRDP not using FreeRDP v3 by default
|
||||
- Fix various file transfer error messages not being accurate
|
||||
|
||||
Reference in New Issue
Block a user