Use a GtkListBox instead of a GtkTreeView
The biggest reason to get rid of some of our GtkTreeView
s (which are
supported by GcrCollectionModel
), as they're leading to bugs when
scrolling or selecting items.
The first element to accomplish this is a new object: SeahorseItemList
SeahorseItemList
is a wrapper to easily combine a GtkListBox
and a
GcrCollectionModel
. In the long term, we probably want to get rid of
the latter in favor of GListModel
s everywhere, but this will also need
changes (and the appropriate deprecations) in libgcr.
Second, we create a KeyManagerItemRow
, which represents a widget in
the main window (the KeyManager
), rather than using custom
GtkCellRenderer
s.
Third, we rewrite the SideBar
to also make use of an internal
GListStore
, combined with a GcrUnionCollection
to keep the
transition smaller.
Note that this is one big commit, which I normally really dislike, but it was the only practical way, since a lot of the things were linked together in some unfathomable way, which meant that changing something could break the code somewhere completely else.