On Mon, 8 Dec 2003, MenTaLguY wrote:
On Mon, 2003-12-08 at 22:44, bulia byak wrote:
Realistically, are users ever going to backtrack through more than ~300 levels of undo anyway?
Easy :) Real drawing sessions may span hours and hours. Right now, however, a crash is a more likely outcome of being in Inkscape for too long, but in the future...
I still have a hard time imagining anyone doing nothing but clicking on 'undo' for several minutes on end, but ok... ^_-
Actually, you know what would be cool? A "snapback" feature for undo like Apple's Safari browser has for its navigation history.
This sounds like it could be a good solution to consider - what is it in more detail? It sort of sounds like allowing the user to set "bookmarks" on the undo transaction log, which would solve the backtracing issue.
Another approach could be to allow access to the undo log through a list or tree interface, akin to the XML editor. Then they could randomly jump around in the transaction log as needed.
Also, we general talk about the undo transaction log as being linear, however one thing to consider if we are going to allow the user to hop around in history is representing it as a tree instead. The user could hop 42 changes back, then make a sequence of changes, but decide they don't like that and want to go back to where they were originally. Many professional artists I've worked with have operated in a manner that would map like this, and having full access to the breadth as well as depth of their changes would seem like a very useful feature for them.
Nathan mentioned another idea - per-object transaction logs, so that, for instance, the context menu for the object would allow stepping back through its changes. This might get tricky for situations like if the object has been split or joined, etc. and how restoring the changes to an object affects the global undo log, but if that could be resolved it'd be very cool.
Bryce