Various fixes

This commit is contained in:
crschnick
2025-10-13 19:44:29 +00:00
parent 6b19693fb6
commit 4fa9716aaf
6 changed files with 54 additions and 8 deletions

View File

@@ -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;
}

View File

@@ -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?");
}

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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