Hi,
I have recently uploaded a patch[1] which provides an undo history dialog. It is similar to those found in e.g. GIMP[2] and Photoshop[3] (I don't know if it's in Illustrator, CorelDRAW, etc). To get an idea what it looks like without having to apply the patch, here's a screencast (in flash, sorry ;) showing it in action: http://www.csc.kth.se/~broberg/undo-history.html
First of all, I'm not sure if this is a requested addition to Inkscape -- I can't recall any discussion about it on the list and I didn't find anything in the wiki. Personally, however, I do find it useful (at least occasionally), so I went ahead and implemented it.
Secondly (if it's found to be of value), this patch could use some rather heavy reviewing. It's my first patch and I'm not confident enough with the code base to feel sure about what the "right" solutions are.
Here are some additional concerns:
* To get the type of an event I rely entirely on the current event context. This obviously not (always) a correct assumption. An example of this problem: setting an object's color while the node tool is the current context.
* In order to populate the tree with icons I added a help function to widget/icon.cpp to get the internal Pixbuf of an icon. This could be solved in much a better way when the gktmmified stock icon system is in place, but for now, this was easiest way for me to solve it.
* There are bugs lurking which I have not been able to reproduce. Some seem to be the result of problems with undoing of certain types of events; i.e. the bugs are in the current code. I'm looking into this... For now, here is at least one I managed to nail down and put in the tracker: http://sourceforge.net/tracker/index.php?func=detail&aid=1423038&gro...
1. http://sourceforge.net/tracker/index.php?func=detail&aid=1423034&gro...) 2. http://docs.gimp.org/images/dialogs/dialogs-undo-history.png 3. http://homepage.cs.uri.edu/tutorials/PhotoshopEl/Help/images/wa_11.gif
-- Gustav Broberg