The goal is to get rid of detailed table setups in favour of
automatic alignment with few hints as well as abstracting away
the exact layout to allow reimplementing it in a different form.
KatzeNet can from now on be used where
URIs are handled and one would have used
libSoup and/ or local file handling as
appropriate, whereas KatzeNet does both.
Since we are displaying icons in several
places KatzeNet also provides an icon
loader that saves us from doublicating
even more code.
All bookmarks and also history items have
icons now, since KatzeNet makes that
incredibly easy.
Search engines are also using favicons
now, and right now custom icons don't
work, we still need to fix that.
Note that only icons are cached, nothing
else and the code is known to have a
hidden, hard to reproduce crasher which
may appear when an icon is newly loaded.
Finally the trash, which was the last item that
needed to be implemented as an action, is an
action, a KatzeArrayAction to be exact.
This simplifies more code and also makes Window
and RecentlyVisited generically implementable.
Incidentally this change also fixes a bug where
the browser tried to add a new tab when the last
one was closed, even while destroying itself.
Furthermore sokoke_image_menu_item_ellipsized
and sokoke_widget_popup were promoted to Katze.
We're still keeping the old functions for now.
The functions katze_property_proxy and katze_propery_label
can intelligently create widgets that represent properties
of a particular object. This allows for building up a
configuration interface with few to no code dealing with
specific settings.