On 2009-June-12 , at 17:18 , Sam Mason wrote:
I'm struggling to follow the example, but it sounds a lot like the way Emacs handles undo/redo---i.e. they're the same, you undo to undo undos!
It's nice for some tasks, but would be a major deviation from almost every graphical program I've used, and in that regard it's probably a bad UI design choice but it's not so novel that nobody has tried it before.
Actually, I think this solution is particularly interesting because it is conceptually simple: the history is linear and always progresses in the same direction, the undos are treated just like other actions. The same state can be present several times in the history so it might be a little less efficient but from a user point of view it is really straightforward: document state: make blue rect. blue rect change color to green green rect undo blue rect undo (the previous undo) green rect etc.
Having explicit history branches would only have two advantages over that, I think: - it would prevent the existence of undos that undo previous undos, which might be difficult to grasp (but then again, if you don't really think about what is happening, the suite of states of the document feels natural) - if it is ever possible to cherry pick changes from multiple branches to make them coexist in a new version of the document, that would be a clear plus. There are UI solution to which developers at least are familiar to represent such branches: they are used in version control systems: http://files.getdropbox.com/u/1047321/version_control_timeline.png Moving from one branch to the other will probably be very mouse oriented but I guess this is not a pb for Inkscape.
Just my 2 cents.
JiHO --- http://jo.irisson.free.fr/