fix(gtk): ensure MDS is always started

This commit is contained in:
Johannes Frohnmeyer 2024-06-22 20:57:42 +02:00
parent 4945381030
commit 56c25880e8
Signed by: Johannes
GPG Key ID: E76429612C2929F4
4 changed files with 11 additions and 4 deletions

View File

@ -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<String>): Int = setupApplication(args) {
//TODO update check
AccountManager.loadAccounts()
try {
InstanceList.forEach<IOException> { it.mds.start() }
} catch (e: IOException) {
Log.error("Could not initialize MDS", e)
}
GtkMenubar.create(this)
val window = MainWindow(this)
window.visible = true

View File

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

View File

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

View File

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