From b1310bfccfeea416cab6f330588954a4ef3ffe4e Mon Sep 17 00:00:00 2001 From: Tungstend Date: Wed, 12 Jul 2023 02:20:02 +0800 Subject: [PATCH] refresh mod list page and world list page when run directory changed --- .../java/com/tungsten/fcl/ui/manage/ManagePageManager.java | 5 +++++ .../java/com/tungsten/fcl/ui/manage/VersionSettingPage.java | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/FCL/src/main/java/com/tungsten/fcl/ui/manage/ManagePageManager.java b/FCL/src/main/java/com/tungsten/fcl/ui/manage/ManagePageManager.java index 6d949fe4..b7b009b8 100644 --- a/FCL/src/main/java/com/tungsten/fcl/ui/manage/ManagePageManager.java +++ b/FCL/src/main/java/com/tungsten/fcl/ui/manage/ManagePageManager.java @@ -72,4 +72,9 @@ public class ManagePageManager extends PageManager { modListPage.loadVersion(profile, version); worldListPage.loadVersion(profile, version); } + + public void onRunDirectoryChange(Profile profile, String version) { + modListPage.loadVersion(profile, version); + worldListPage.loadVersion(profile, version); + } } diff --git a/FCL/src/main/java/com/tungsten/fcl/ui/manage/VersionSettingPage.java b/FCL/src/main/java/com/tungsten/fcl/ui/manage/VersionSettingPage.java index 64e99274..521fc7f9 100644 --- a/FCL/src/main/java/com/tungsten/fcl/ui/manage/VersionSettingPage.java +++ b/FCL/src/main/java/com/tungsten/fcl/ui/manage/VersionSettingPage.java @@ -281,8 +281,11 @@ public class VersionSettingPage extends FCLCommonPage implements ManageUI.Versio modpack.set(versionId != null && profile.getRepository().isModpack(versionId)); usedMemory.set(MemoryUtils.getUsedDeviceMemory(getContext())); + InvalidationListener listener = observable -> ManagePageManager.getInstance().onRunDirectoryChange(profile, versionId); + // unbind data fields if (lastVersionSetting != null) { + lastVersionSetting.isolateGameDirProperty().removeListener(listener); FXUtils.unbind(txtJVMArgs, lastVersionSetting.javaArgsProperty()); FXUtils.unbind(txtGameArgs, lastVersionSetting.minecraftArgsProperty()); FXUtils.unbind(txtMetaspace, lastVersionSetting.permSizeProperty()); @@ -302,6 +305,9 @@ public class VersionSettingPage extends FCLCommonPage implements ManageUI.Versio } // bind new data fields + if (getId() == ManagePageManager.PAGE_ID_MANAGE_SETTING) { + versionSetting.isolateGameDirProperty().addListener(listener); + } FXUtils.bindString(txtJVMArgs, versionSetting.javaArgsProperty()); FXUtils.bindString(txtGameArgs, versionSetting.minecraftArgsProperty()); FXUtils.bindString(txtMetaspace, versionSetting.permSizeProperty());