修复 OfflineAccountSkinPane 中 cslApiField 的校验未生效的问题 (#5411)
Co-authored-by: Glavo <zjx001202@gmail.com>
This commit is contained in:
@@ -29,9 +29,6 @@ import javafx.scene.control.Label;
|
|||||||
import javafx.scene.input.DragEvent;
|
import javafx.scene.input.DragEvent;
|
||||||
import javafx.scene.input.TransferMode;
|
import javafx.scene.input.TransferMode;
|
||||||
import javafx.scene.layout.*;
|
import javafx.scene.layout.*;
|
||||||
import org.jackhuang.hmcl.ui.skin.SkinCanvas;
|
|
||||||
import org.jackhuang.hmcl.ui.skin.animation.SkinAniRunning;
|
|
||||||
import org.jackhuang.hmcl.ui.skin.animation.SkinAniWavingArms;
|
|
||||||
import org.jackhuang.hmcl.auth.offline.OfflineAccount;
|
import org.jackhuang.hmcl.auth.offline.OfflineAccount;
|
||||||
import org.jackhuang.hmcl.auth.offline.Skin;
|
import org.jackhuang.hmcl.auth.offline.Skin;
|
||||||
import org.jackhuang.hmcl.auth.yggdrasil.TextureModel;
|
import org.jackhuang.hmcl.auth.yggdrasil.TextureModel;
|
||||||
@@ -40,6 +37,9 @@ import org.jackhuang.hmcl.task.Schedulers;
|
|||||||
import org.jackhuang.hmcl.ui.Controllers;
|
import org.jackhuang.hmcl.ui.Controllers;
|
||||||
import org.jackhuang.hmcl.ui.FXUtils;
|
import org.jackhuang.hmcl.ui.FXUtils;
|
||||||
import org.jackhuang.hmcl.ui.construct.*;
|
import org.jackhuang.hmcl.ui.construct.*;
|
||||||
|
import org.jackhuang.hmcl.ui.skin.SkinCanvas;
|
||||||
|
import org.jackhuang.hmcl.ui.skin.animation.SkinAniRunning;
|
||||||
|
import org.jackhuang.hmcl.ui.skin.animation.SkinAniWavingArms;
|
||||||
import org.jackhuang.hmcl.util.io.FileUtils;
|
import org.jackhuang.hmcl.util.io.FileUtils;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
@@ -48,8 +48,8 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import static org.jackhuang.hmcl.ui.FXUtils.onEscPressed;
|
import static org.jackhuang.hmcl.ui.FXUtils.onEscPressed;
|
||||||
import static org.jackhuang.hmcl.ui.FXUtils.stringConverter;
|
import static org.jackhuang.hmcl.ui.FXUtils.stringConverter;
|
||||||
import static org.jackhuang.hmcl.util.logging.Logger.LOG;
|
|
||||||
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
|
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
|
||||||
|
import static org.jackhuang.hmcl.util.logging.Logger.LOG;
|
||||||
|
|
||||||
public class OfflineAccountSkinPane extends StackPane {
|
public class OfflineAccountSkinPane extends StackPane {
|
||||||
private final OfflineAccount account;
|
private final OfflineAccount account;
|
||||||
@@ -110,6 +110,7 @@ public class OfflineAccountSkinPane extends StackPane {
|
|||||||
|
|
||||||
cslApiField.setPromptText(i18n("account.skin.type.csl_api.location.hint"));
|
cslApiField.setPromptText(i18n("account.skin.type.csl_api.location.hint"));
|
||||||
cslApiField.setValidators(new URLValidator());
|
cslApiField.setValidators(new URLValidator());
|
||||||
|
FXUtils.setValidateWhileTextChanged(cslApiField, true);
|
||||||
|
|
||||||
skinItem.loadChildren(Arrays.asList(
|
skinItem.loadChildren(Arrays.asList(
|
||||||
new MultiFileItem.Option<>(i18n("message.default"), Skin.Type.DEFAULT),
|
new MultiFileItem.Option<>(i18n("message.default"), Skin.Type.DEFAULT),
|
||||||
@@ -218,6 +219,10 @@ public class OfflineAccountSkinPane extends StackPane {
|
|||||||
cancelButton.setOnAction(e -> fireEvent(new DialogCloseEvent()));
|
cancelButton.setOnAction(e -> fireEvent(new DialogCloseEvent()));
|
||||||
onEscPressed(this, cancelButton::fire);
|
onEscPressed(this, cancelButton::fire);
|
||||||
|
|
||||||
|
acceptButton.disableProperty().bind(
|
||||||
|
skinItem.selectedDataProperty().isEqualTo(Skin.Type.CUSTOM_SKIN_LOADER_API)
|
||||||
|
.and(cslApiField.activeValidatorProperty().isNotNull()));
|
||||||
|
|
||||||
layout.setActions(littleSkinLink, acceptButton, cancelButton);
|
layout.setActions(littleSkinLink, acceptButton, cancelButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user