[sup-talk] How hard would a universal undo be?

Rich Lane rlane at club.cc.cmu.edu
Fri Sep 11 15:52:24 EDT 2009


Excerpts from Nicolas Pouillard's message of Fri Sep 11 05:16:49 -0400 2009:
> Excerpts from Rich Lane's message of Fri Sep 11 00:45:20 +0200 2009:
> > Excerpts from Carl Worth's message of Wed Sep 09 13:32:30 -0400 2009:
> > > Would it be a small change to move the undo keybinding to somewhere
> > > more universal?
> > 
> > No :(
> > 
> > > As a first cut, I'd be happy if it just undid the changes to the
> > > index, even without undoing any interface changes. That is, if my
> > > previous command was archive-thread-and-view-next-thread, it would be
> > > OK if it just undid the archiving part. Bonus points if it also undoes
> > > the view-next part, but I can imagine that being more work.
> > 
> > I know I sound a bit like a broken record here, but immediate
> > label changes will solve this problem. Then, the undo system would just
> > need to keep a global stack of (msgid, previous_labels). I'm just hoping
> > somebody will volunteer for this - it will be a big patch.
> 
> What prevent us from having a global stack of (msgid, previous_labels) in
> the actual settings?

Hmm, you may be right. I was thinking that changes weren't propagated
between buffers except on save, but that's wrong because UpdateManager
is called in the keybinding. In that case, the user sees a mostly*
linear series of label changes, so it's safe to have a global undo
stack.

*
 User opens thread-index-mode A containing message M with labels L1
 User changes labels on A.M to L2
 User opens thread-index-mode B containing message M with labels L1
 User changes labels on B.M to L3
 UpdateManager changes labels on A.M to L3
 User hits 'u' - now A.M and B.M have labels L1


More information about the sup-talk mailing list