fix(gtk): properly select mod list items
This commit is contained in:
parent
6089636255
commit
2960f109c5
@ -172,18 +172,21 @@ class ModsTab(window: InstanceSettingsWindow) : SettingsTab<Leaflet, InstanceSet
|
|||||||
vscrollPolicy = ScrollablePolicy.NATURAL
|
vscrollPolicy = ScrollablePolicy.NATURAL
|
||||||
addCssClass("navigation-sidebar")
|
addCssClass("navigation-sidebar")
|
||||||
vexpand = true
|
vexpand = true
|
||||||
hexpand = true
|
|
||||||
showSeparators = true
|
showSeparators = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ModsListSelectionModel(model: StringList): SingleSelection(model) {
|
inner class ModsListSelectionModel(model: StringList): SingleSelection(model) {
|
||||||
init {
|
init {
|
||||||
autoselect = false
|
autoselect = false
|
||||||
// onSelectionChanged { position, nItems ->
|
onSelectionChanged { position, _ ->
|
||||||
// val v = (selectedItem as? StringObject)?.string
|
if (position != -1) {
|
||||||
// if (v != null)
|
val v = (selectedItem as? StringObject)?.string
|
||||||
// }
|
if (v != null) {
|
||||||
|
mods[v]?.let { selectMod(it) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -193,7 +196,6 @@ class ModsTab(window: InstanceSettingsWindow) : SettingsTab<Leaflet, InstanceSet
|
|||||||
inner class ModsListItemFactory: KSignalListItemFactory<Decomposed, ActionRow>() {
|
inner class ModsListItemFactory: KSignalListItemFactory<Decomposed, ActionRow>() {
|
||||||
override fun setup(): ActionRow {
|
override fun setup(): ActionRow {
|
||||||
val row = ActionRow()
|
val row = ActionRow()
|
||||||
row.activatable = true
|
|
||||||
|
|
||||||
val quickAction = Button.fromIconName("folder-download-symbolic")
|
val quickAction = Button.fromIconName("folder-download-symbolic")
|
||||||
quickAction.addCssClass("flat")
|
quickAction.addCssClass("flat")
|
||||||
@ -208,7 +210,6 @@ class ModsTab(window: InstanceSettingsWindow) : SettingsTab<Leaflet, InstanceSet
|
|||||||
override fun BindContext.bind(row: ActionRow, data: Decomposed) {
|
override fun BindContext.bind(row: ActionRow, data: Decomposed) {
|
||||||
row.title = data.mod!!.name.escapedMarkup
|
row.title = data.mod!!.name.escapedMarkup
|
||||||
row.subtitle = data.mod.summary.escapedMarkup
|
row.subtitle = data.mod.summary.escapedMarkup
|
||||||
registerForUnbind(row.onActivated { selectMod(data.mod) })
|
|
||||||
fun setupQuickAction(
|
fun setupQuickAction(
|
||||||
iconName: String,
|
iconName: String,
|
||||||
description: @PropertyKey(resourceBundle = I18n.BUNDLE) String,
|
description: @PropertyKey(resourceBundle = I18n.BUNDLE) String,
|
||||||
@ -257,7 +258,7 @@ class ModsTab(window: InstanceSettingsWindow) : SettingsTab<Leaflet, InstanceSet
|
|||||||
data class Installed(private val mod: Mod) : ModState {
|
data class Installed(private val mod: Mod) : ModState {
|
||||||
private val sources = mod.metadata.sources
|
private val sources = mod.metadata.sources
|
||||||
val updates: List<() -> Unit> = sources.mapNotNull { it.value.getOrNull() }.map { { mod.update(it) } }
|
val updates: List<() -> Unit> = sources.mapNotNull { it.value.getOrNull() }.map { { mod.update(it) } }
|
||||||
val outdated get() = updates.isEmpty()
|
val outdated get() = updates.isNotEmpty()
|
||||||
fun remove() = mod.delete()
|
fun remove() = mod.delete()
|
||||||
override val name: String = mod.name
|
override val name: String = mod.name
|
||||||
override val summary: String by lazy { mod.metadata.sources.bestSummary }
|
override val summary: String by lazy { mod.metadata.sources.bestSummary }
|
||||||
|
Loading…
Reference in New Issue
Block a user