From 56c25880e8261c50cc362beea7d315cf565a56e3 Mon Sep 17 00:00:00 2001 From: JFronny Date: Sat, 22 Jun 2024 20:57:42 +0200 Subject: [PATCH] fix(gtk): ensure MDS is always started --- .../main/kotlin/io/gitlab/jfronny/inceptum/gtk/GtkMain.kt | 6 ++++++ .../gtk/window/settings/instance/InstanceSettingsWindow.kt | 1 + .../inceptum/imgui/window/edit/InstanceEditWindow.java | 3 +-- .../inceptum/launcher/system/setup/steps/RunMdsStep.java | 5 +++-- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/GtkMain.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/GtkMain.kt index a1fa9dd..70e1634 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/GtkMain.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/GtkMain.kt @@ -6,6 +6,7 @@ import io.gitlab.jfronny.inceptum.gtk.util.Log import io.gitlab.jfronny.inceptum.gtk.window.MainWindow import io.gitlab.jfronny.inceptum.launcher.LauncherEnv import io.gitlab.jfronny.inceptum.launcher.api.account.AccountManager +import io.gitlab.jfronny.inceptum.launcher.system.instance.InstanceList import org.gnome.gio.ApplicationFlags import org.gnome.glib.GLib import org.gnome.gtk.* @@ -33,6 +34,11 @@ object GtkMain { fun showGui(args: Array): Int = setupApplication(args) { //TODO update check AccountManager.loadAccounts() + try { + InstanceList.forEach { it.mds.start() } + } catch (e: IOException) { + Log.error("Could not initialize MDS", e) + } GtkMenubar.create(this) val window = MainWindow(this) window.visible = true diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/InstanceSettingsWindow.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/InstanceSettingsWindow.kt index 10c04fd..8109cb5 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/InstanceSettingsWindow.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/InstanceSettingsWindow.kt @@ -7,6 +7,7 @@ import org.gnome.gtk.Application class InstanceSettingsWindow(val app: Application?, val instance: Instance) : SettingsWindow(app) { init { val claim = instance.mds.focus() + instance.mds.start() addTab(GeneralTab(this), "instance.settings.general", "preferences-other-symbolic") addTab(ModsTab(this), "instance.settings.mods", "package-x-generic-symbolic") addTab(ExportTab(this), "instance.settings.export", "send-to-symbolic") diff --git a/launcher-imgui/src/main/java/io/gitlab/jfronny/inceptum/imgui/window/edit/InstanceEditWindow.java b/launcher-imgui/src/main/java/io/gitlab/jfronny/inceptum/imgui/window/edit/InstanceEditWindow.java index 7c67cee..de1dd00 100644 --- a/launcher-imgui/src/main/java/io/gitlab/jfronny/inceptum/imgui/window/edit/InstanceEditWindow.java +++ b/launcher-imgui/src/main/java/io/gitlab/jfronny/inceptum/imgui/window/edit/InstanceEditWindow.java @@ -5,7 +5,6 @@ import io.gitlab.jfronny.inceptum.common.Utils; import io.gitlab.jfronny.inceptum.imgui.control.Tab; import io.gitlab.jfronny.inceptum.imgui.window.GuiUtil; import io.gitlab.jfronny.inceptum.imgui.window.Window; -import io.gitlab.jfronny.inceptum.launcher.LauncherEnv; import io.gitlab.jfronny.inceptum.launcher.system.instance.Instance; import java.io.Closeable; @@ -22,8 +21,8 @@ public class InstanceEditWindow extends Window { public InstanceEditWindow(Instance instance) throws IOException { super(instance.getName() + " - Edit"); this.instance = instance; - this.instance.mds().start(); this.focus = instance.mds().focus(); + this.instance.mds().start(); this.tabs = List.of( new GeneralTab(this), new ArgumentsTab(this), diff --git a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/setup/steps/RunMdsStep.java b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/setup/steps/RunMdsStep.java index 1f4a50a..a91a136 100644 --- a/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/setup/steps/RunMdsStep.java +++ b/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/setup/steps/RunMdsStep.java @@ -17,8 +17,9 @@ public class RunMdsStep implements Step { public void execute(SetupStepInfo info) throws IOException { info.setState("Running MDS"); Path instance = MetaHolder.INSTANCE_DIR.resolve(info.name()); - ModsDirScanner.get(instance.resolve("mods"), GC_InstanceMeta.deserialize(instance.resolve(Instance.CONFIG_NAME), GsonPreset.CONFIG)) - .runOnce(ScanStage.DOWNLOAD, (path, iwModDescription) -> info.setState("Scanned " + path)); + var mds = ModsDirScanner.get(instance.resolve("mods"), GC_InstanceMeta.deserialize(instance.resolve(Instance.CONFIG_NAME), GsonPreset.CONFIG)); + mds.runOnce(ScanStage.DOWNLOAD, (path, iwModDescription) -> info.setState("Scanned " + path)); + mds.start(); } @Override