From mboxrd@z Thu Jan 1 00:00:00 1970 From: rlane@club.cc.cmu.edu (Rich Lane) Date: Sun, 13 Sep 2009 17:40:05 -0400 Subject: [sup-talk] How hard would a universal undo be? In-Reply-To: References: <1252517083-sup-58@yoom.home.cworth.org> <1252599828-sup-7368@zyrg.net> <1252660564-sup-4253@peray> <1252685502-sup-8928@zyrg.net> Message-ID: <1252877576-sup-8500@zyrg.net> Excerpts from Nicolas Pouillard's message of Fri Sep 11 17:25:06 -0400 2009: > On Fri, Sep 11, 2009 at 9:52 PM, Rich Lane wrote: > > 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. > > he next question is, what else is needed on this undo stack? > > Are labels the only interaction we have? Here is what come to my mind: > > * contacts (I more and more think that contacts should not be handled by > sup directly, but that's another topic) > * drafts > What actions on drafts are you thinking of making undoable? Could we implement them with reserved labels?