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
|
||||
addCssClass("navigation-sidebar")
|
||||
vexpand = true
|
||||
hexpand = true
|
||||
showSeparators = true
|
||||
}
|
||||
}
|
||||
|
||||
class ModsListSelectionModel(model: StringList): SingleSelection(model) {
|
||||
inner class ModsListSelectionModel(model: StringList): SingleSelection(model) {
|
||||
init {
|
||||
autoselect = false
|
||||
// onSelectionChanged { position, nItems ->
|
||||
// val v = (selectedItem as? StringObject)?.string
|
||||
// if (v != null)
|
||||
// }
|
||||
onSelectionChanged { position, _ ->
|
||||
if (position != -1) {
|
||||
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>() {
|
||||
override fun setup(): ActionRow {
|
||||
val row = ActionRow()
|
||||
row.activatable = true
|
||||
|
||||
val quickAction = Button.fromIconName("folder-download-symbolic")
|
||||
quickAction.addCssClass("flat")
|
||||
@ -208,7 +210,6 @@ class ModsTab(window: InstanceSettingsWindow) : SettingsTab<Leaflet, InstanceSet
|
||||
override fun BindContext.bind(row: ActionRow, data: Decomposed) {
|
||||
row.title = data.mod!!.name.escapedMarkup
|
||||
row.subtitle = data.mod.summary.escapedMarkup
|
||||
registerForUnbind(row.onActivated { selectMod(data.mod) })
|
||||
fun setupQuickAction(
|
||||
iconName: 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 {
|
||||
private val sources = mod.metadata.sources
|
||||
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()
|
||||
override val name: String = mod.name
|
||||
override val summary: String by lazy { mod.metadata.sources.bestSummary }
|
||||
|
Loading…
Reference in New Issue
Block a user