Re: Undo framework

2007-09-26 Thread Sven Neumann
Hi, On Tue, 2007-09-25 at 08:16 -0400, Jody Goldberg wrote: Undo comes with Redo, which is sufficient information to make a replay a modification from a known state. Not necessarily. A common approach to Undo/Redo is to store the information before the operation on the undo stack. Then, when

Re: Undo framework

2007-09-26 Thread Rodrigo Moya
On Mon, 2007-09-24 at 09:23 -0400, Jody Goldberg wrote: On Mon, Sep 24, 2007 at 02:41:19PM +0200, Rodrigo Moya wrote: On Fri, 2007-09-21 at 16:21 -0300, Johan Dahlin wrote: I'm not sure we should talk about a 'document' there, there are many operations outside of documents which

Re: Undo framework

2007-09-26 Thread Tristan Van Berkom
On Wed, 2007-09-26 at 13:08 +0200, Rodrigo Moya wrote: [...] It seems useful for anything that operates on persistent data, be it a document, or control-center settings. I'm thinking, maybe a crazy idea though, but this could also be useful, once the actions are stored in a file, to be

Re: Undo framework

2007-09-25 Thread Jody Goldberg
On Mon, Sep 24, 2007 at 08:32:01PM +0200, Sven Neumann wrote: Hi, On Mon, 2007-09-24 at 09:23 -0400, Jody Goldberg wrote: The 'transaction' refered to a mechanism for persisting the details of each operation to a file. 1) The options could be re-played in the case of failure.

Re: Undo framework

2007-09-24 Thread Rodrigo Moya
On Sat, 2007-09-22 at 01:01 +0100, Iain * wrote: Do you allow nested undo groups? This is rather important if you want to compose actions from smaller actions and still allow scripts or other higher levels to combine these into a single undo step. We make heavy use of nested undo groups

Re: Undo framework

2007-09-24 Thread Jody Goldberg
On Mon, Sep 24, 2007 at 02:41:19PM +0200, Rodrigo Moya wrote: On Fri, 2007-09-21 at 16:21 -0300, Johan Dahlin wrote: I'm not sure we should talk about a 'document' there, there are many operations outside of documents which are undoable. yes, we are not talking only about document,

Re: Undo framework

2007-09-24 Thread Sven Neumann
Hi, On Mon, 2007-09-24 at 09:23 -0400, Jody Goldberg wrote: The 'transaction' refered to a mechanism for persisting the details of each operation to a file. 1) The options could be re-played in the case of failure. 2) The data would provide useful hooks for auditing and

Re: Undo framework

2007-09-24 Thread Morten Welinder
I would find it useful if such an undo system would do away with the stack view of things and use the back-in-time view that Emacs uses. For example, if we have Do A, Do B, Do C, Undo C, Do D then it should be possible to rewind history to the point where C was done. Morten

Re: Undo framework

2007-09-21 Thread Ross Burton
On Fri, 2007-09-21 at 17:51 +0100, Iain * wrote: I've had an undo framework in Marlin for years now, but recently people have been using it in other things (notably Ross in Tasks - ok, actually, he's the only one) and we discussed suggesting this for inclusion in GTK at some point

Re: Undo framework

2007-09-21 Thread Tristan Van Berkom
On Fri, 2007-09-21 at 17:51 +0100, Iain * wrote: Hi, I've had an undo framework in Marlin for years now, but recently people have been using it in other things (notably Ross in Tasks - ok, actually, he's the only one) and we discussed suggesting this for inclusion in GTK at some point

Re: Undo framework

2007-09-21 Thread Iain *
On 9/21/07, Tristan Van Berkom [EMAIL PROTECTED] wrote: Should be noted here that from my particular experience, writing code that is undoable (i.e. filling in the execute()/undo() routines for a given undoable command) is far more challenging than writing a framework that supports it - but

Re: Undo framework

2007-09-21 Thread Yevgen Muntyan
David Trowbridge wrote: You might want to look at the undo implementation in Tomboy. It implements the mergeable command idea fairly nicely. Or look at GtkSourceView, or look for it in bugzilla, or look at bunch of other implementations (I am sure there are *plenty*, minimum two in every

Re: Undo framework

2007-09-21 Thread Sven Neumann
Hi, On Fri, 2007-09-21 at 17:51 +0100, Iain * wrote: I've had an undo framework in Marlin for years now, but recently people have been using it in other things (notably Ross in Tasks - ok, actually, he's the only one) and we discussed suggesting this for inclusion in GTK at some point

Re: Undo framework

2007-09-21 Thread Sven Neumann
to combine these into a single undo step. We make heavy use of nested undo groups in GIMP. I am not trying to argue that the GIMP undo system would be suitable for use anywhere outside GIMP. But we might want to adopt a more general undo framework if it is provided by GLib/GTK+ and allows us

Re: Undo framework

2007-09-21 Thread Jody Goldberg
On Fri, Sep 21, 2007 at 05:51:26PM +0100, Iain * wrote: Hi, I've had an undo framework in Marlin for years now, but recently people have been using it in other things (notably Ross in Tasks - ok, actually, he's the only one) and we discussed suggesting this for inclusion in GTK at some

Re: Undo framework

2007-09-21 Thread Johan Dahlin
Jody Goldberg wrote: On Fri, Sep 21, 2007 at 05:51:26PM +0100, Iain * wrote: Hi, I've had an undo framework in Marlin for years now, but recently people have been using it in other things (notably Ross in Tasks - ok, actually, he's the only one) and we discussed suggesting

Re: Undo framework

2007-09-21 Thread Iain *
Do you allow nested undo groups? This is rather important if you want to compose actions from smaller actions and still allow scripts or other higher levels to combine these into a single undo step. We make heavy use of nested undo groups in GIMP. We allow one level of nesting, I can see your