====== Graph ======

* generate table of links from cache
	* hash of node to array of links
	* either just read the whole cache or iterate for a certain link depth
* (alternatively generate table from user input)
	* needs specialized editor ?

* generate svg
	* From hash to arrays
		* (fold two-way links to "both" argument)
		* create dot script
		* open neato (or dot) using IPC::Open2
			* -Tsvg
			* write prepared graph
			* read svg
	* (alternatively, if given a GraphViz object, ask for svg content)

* (check pixbuf loader formats to make sure we do svg)
* use pixbuf loader + mimetype to load svg into a pixbuf
	* how to emulate the "at_size" or "at_scale" things you get when reading a file ?
* read polygons from svg where class=node
* catch mouse movement events
	* change cursor shape when within a node
	* see HyperTextView for code
	* only do rectangles for now
		* later the surrounding rectangle can be used as a coarse check for other shapes
* catch mouse clicks
	* emit signal when within a node

* (subclass my Gtk2::Ex::ImageView, to have zoom)

* dialog with graph
* have a checkbox to limit the depth
	* have a integer control for the depth of search
	* reload "local map" on page change if depth is limited
* toolbar icon next to calendar to open this dialog

