wiki:UndoManager

Version 1 (modified by Tom Goddard, 11 years ago) ( diff )

--

Undo Manager Requirements

What do we want to be able to undo? Here are some possible answers:

  1. Everything. For example, I add hydrogens, add charges, do an energy minimization, delete the hydrogens, delete chain B, then accidentally close the session. Now I want to undo restore the session, undelete chain B, re-add the hydrogens, restore coordinates to preminimized positions, unadd the hydrogens.
  1. Limited operations, e.g. color changes, selection changes, display style changes, model motions, but perhaps not object deletion.
  1. All operations of a given type or only some of that type. For instance we could require undo for all color changes (rainbow, color by element, color by conservation, every possible way of coloring). Or we could have undo for just some coloring operations, leaving up to each specific coloring tool to decide if undo will be supported.
  1. Minimal undo, but with a common user interface such as one menu entry that says "Undo X" where X changes to whatever the last undoable action is, for example, "Undo selection", "Undo motion". Minimal undo may be only selection and movement and maybe a few core molecule color and display style change operations.
  1. No undo. Let's face it, although undo is nice, it is hard to implement without impairing performance.
  1. Should there be multi-step undo, or only allow undo of the last action?
  1. Do we want redo, after an undo?
  1. Is out of order undo allowed? Can you change molecule color, then change display style, then undo just the color change?
Note: See TracWiki for help on using the wiki.