Use a GtkListBox instead of a GtkTreeView
The biggest reason to get rid of some of our
GtkTreeViews (which are
GcrCollectionModel), as they're leading to bugs when
scrolling or selecting items.
The first element to accomplish this is a new object:
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
GListModels 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
Third, we rewrite the
SideBar to also make use of an internal
GListStore, combined with a
GcrUnionCollection to keep the
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.