diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/ModsTab.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/ModsTab.kt index 0dd440b..fb10d5b 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/ModsTab.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/ModsTab.kt @@ -82,17 +82,24 @@ class ModsTab(window: InstanceSettingsWindow) : SettingsTab = emptyList() addTickCallback { _, _ -> val toShow = mutableListOf() + var contentChanged = false + fun discover(state: ModState) { + if (mods.put(state.name, state) != state) { + contentChanged = true + } + toShow.add(state.name) + } if (page == Page.LOCAL) { loadingRevealer.setRunning(!mds.isComplete(ScanStage.DISCOVER)) val mods = window.instance.mds.mods // avoid instance.mods to allow rendering before MDS is finished loadingRevealer.setProgress((mods.filter { mds.hasScanned(it) }.size.toDouble() / mods.size)) for (mod in mods) { + //TODO improve this search if (mod.name.contains(currentSearchString, true)) { - //TODO improve this search - this@ModsTab.mods[mod.name] = ModState.Installed(mod) - toShow.add(mod.name) + discover(ModState.Installed(mod)) } } } else { @@ -100,12 +107,14 @@ class ModsTab(window: InstanceSettingsWindow) : SettingsTab