pointless
My experience is very limited, especially on GTK3; but I think GTK4 really streamlined listview/model operations, especially with the newly introduced GtkExpression, & the ability to bind GObject properties to expressions that the toolkit will figure out when to evaluate & plug in.
The following blog entries help establish the fundamental concepts pretty well, I think: https://blog.gtk.org/2020/06/07/scalable-lists-in-gtk-4/ https://blog.gtk.org/2020/06/08/more-on-lists-in-gtk-4/ https://blog.gtk.org/2020/09/08/on-list-models/ — but the crux of the matter really is GObject, & signalling; & ToshioCP’s tutorial fills an important gap in the existing body of documentation.
Also, the Lists section on the Gtk4 Demo app is really helpful (e.g., the comments on the ‘Clocks’ example explain how to use GtkExpression really well: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/demos/gtk-demo/listview_clocks.c?ref_type=heads#L2 ).
– EDIT: Also, I think the new GJS ‘GTK4 Book’ does a good job explaining the new widgets & data structures – so even if you aren’t using the JS bindings, the code examples can be helpful: https://rmnvgr.gitlab.io/gtk4-gjs-book/application/list-widgets/ ; I never used GJS (just C, and pygobject); but the GJS book helped me quite a bit wrt the ListStore, and setting up DBus connectivity:
Not an answer to the question, but the ‘ToshioCP’ tutorials on gtk4 & gobject have been very helpful to me, to wrap my mind around the relevant concepts in C: https://github.com/ToshioCP/Gtk4-tutorial; https://github.com/ToshioCP/Gobject-tutorial — the gobject tutorial is probably even more helpful than the gtk4 tutorial, as it explains signal handling etc.
lemmy is already written in rust, though.