mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-10 20:37:30 -04:00
fix: onWeakChange should return ChangeListener instead of WeakChangeListener.
This commit is contained in:
parent
23750e1222
commit
03df019638
@ -117,9 +117,9 @@ public final class FXUtils {
|
|||||||
value.addListener((a, b, c) -> consumer.accept(c));
|
value.addListener((a, b, c) -> consumer.accept(c));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> WeakChangeListener<T> onWeakChange(ObservableValue<T> value, Consumer<T> consumer) {
|
public static <T> ChangeListener<T> onWeakChange(ObservableValue<T> value, Consumer<T> consumer) {
|
||||||
WeakChangeListener<T> listener = new WeakChangeListener<>((a, b, c) -> consumer.accept(c));
|
ChangeListener<T> listener = (a, b, c) -> consumer.accept(c);
|
||||||
value.addListener(listener);
|
value.addListener(new WeakChangeListener<>(listener));
|
||||||
return listener;
|
return listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ public final class FXUtils {
|
|||||||
onChange(value, consumer);
|
onChange(value, consumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> WeakChangeListener<T> onWeakChangeAndOperate(ObservableValue<T> value, Consumer<T> consumer) {
|
public static <T> ChangeListener<T> onWeakChangeAndOperate(ObservableValue<T> value, Consumer<T> consumer) {
|
||||||
consumer.accept(value.getValue());
|
consumer.accept(value.getValue());
|
||||||
return onWeakChange(value, consumer);
|
return onWeakChange(value, consumer);
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ import javafx.application.Platform;
|
|||||||
import javafx.beans.InvalidationListener;
|
import javafx.beans.InvalidationListener;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
import javafx.beans.property.*;
|
import javafx.beans.property.*;
|
||||||
import javafx.beans.value.WeakChangeListener;
|
import javafx.beans.value.ChangeListener;
|
||||||
import javafx.css.PseudoClass;
|
import javafx.css.PseudoClass;
|
||||||
import javafx.geometry.Insets;
|
import javafx.geometry.Insets;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
@ -83,7 +83,7 @@ public final class LogWindow extends Stage {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
private final LogWindowImpl impl = new LogWindowImpl();
|
private final LogWindowImpl impl = new LogWindowImpl();
|
||||||
private final WeakChangeListener<Number> logLinesListener = FXUtils.onWeakChange(config().logLinesProperty(), logLines -> checkLogCount());
|
private final ChangeListener<Number> logLinesListener = FXUtils.onWeakChange(config().logLinesProperty(), logLines -> checkLogCount());
|
||||||
|
|
||||||
private Consumer<String> exportGameCrashInfoCallback;
|
private Consumer<String> exportGameCrashInfoCallback;
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ import static org.jackhuang.hmcl.ui.FXUtils.newImage;
|
|||||||
import static org.jackhuang.hmcl.ui.FXUtils.stringConverter;
|
import static org.jackhuang.hmcl.ui.FXUtils.stringConverter;
|
||||||
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
|
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
|
||||||
|
|
||||||
public final class VersionSettingsPage extends StackPane implements DecoratorPage, VersionPage.VersionLoadable {
|
public final class VersionSettingsPage extends StackPane implements DecoratorPage, VersionPage.VersionLoadable, PageAware {
|
||||||
private final ReadOnlyObjectWrapper<State> state = new ReadOnlyObjectWrapper<>(new State("", null, false, false, false));
|
private final ReadOnlyObjectWrapper<State> state = new ReadOnlyObjectWrapper<>(new State("", null, false, false, false));
|
||||||
|
|
||||||
private final boolean globalSetting;
|
private final boolean globalSetting;
|
||||||
@ -153,6 +153,8 @@ public final class VersionSettingsPage extends StackPane implements DecoratorPag
|
|||||||
specificSettingsLink.setOnMouseClicked(e -> editSpecificSettings());
|
specificSettingsLink.setOnMouseClicked(e -> editSpecificSettings());
|
||||||
|
|
||||||
specificSettingsHint.setChildren(text, specificSettingsLink);
|
specificSettingsHint.setChildren(text, specificSettingsLink);
|
||||||
|
specificSettingsHint.managedProperty().bind(navigateToSpecificSettings);
|
||||||
|
specificSettingsHint.visibleProperty().bind(navigateToSpecificSettings);
|
||||||
|
|
||||||
rootPane.getChildren().addAll(specificSettingsHint);
|
rootPane.getChildren().addAll(specificSettingsHint);
|
||||||
}
|
}
|
||||||
@ -582,9 +584,17 @@ public final class VersionSettingsPage extends StackPane implements DecoratorPag
|
|||||||
|
|
||||||
listenerHolder.add(FXUtils.onWeakChangeAndOperate(profile.selectedVersionProperty(), selectedVersion -> {
|
listenerHolder.add(FXUtils.onWeakChangeAndOperate(profile.selectedVersionProperty(), selectedVersion -> {
|
||||||
this.selectedVersion.setValue(selectedVersion);
|
this.selectedVersion.setValue(selectedVersion);
|
||||||
navigateToSpecificSettings.set(!profile.getRepository().getVersionSetting(selectedVersion).isUsesGlobal());
|
|
||||||
|
VersionSetting specializedVersionSetting = profile.getRepository().getLocalVersionSetting(selectedVersion);
|
||||||
|
if (specializedVersionSetting != null) {
|
||||||
|
navigateToSpecificSettings.bind(specializedVersionSetting.usesGlobalProperty().not());
|
||||||
|
} else {
|
||||||
|
navigateToSpecificSettings.unbind();
|
||||||
|
navigateToSpecificSettings.set(false);
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
|
navigateToSpecificSettings.unbind();
|
||||||
navigateToSpecificSettings.set(false);
|
navigateToSpecificSettings.set(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user