fix: handle null list item widgets
This commit is contained in:
parent
862616c856
commit
84b1120efb
@ -1,6 +1,7 @@
|
||||
package io.gitlab.jfronny.inceptum.gtk.control
|
||||
|
||||
import io.github.jwharm.javagi.gobject.SignalConnection
|
||||
import io.gitlab.jfronny.inceptum.gtk.util.Log
|
||||
import org.gnome.gtk.ListItem
|
||||
import org.gnome.gtk.SignalListItemFactory
|
||||
import org.gnome.gtk.StringObject
|
||||
@ -13,10 +14,18 @@ abstract class KSignalListItemFactory<TData, TWidget : Widget> : SignalListItemF
|
||||
val li = it as ListItem
|
||||
li.child = setup()
|
||||
}
|
||||
onTeardown {
|
||||
val li = it as ListItem
|
||||
li.child = null
|
||||
}
|
||||
onBind {
|
||||
val li = it as ListItem
|
||||
val id = (li.item as StringObject).string
|
||||
val context = BindContextImpl(id, li)
|
||||
if (li.child == null) {
|
||||
Log.warn("Unexpectedly, list item widget is null, retrying setup")
|
||||
li.child = setup()
|
||||
}
|
||||
val widget = context.castWidget(li.child!!)
|
||||
context.bind(widget, context.lookup(id, widget))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user