Undo/Redo
To prevent a user from accidentally destroying a complex protein structure (and to make it easier to maneuver around the various bugs in its current implementation), ProteinShop supports an advanced undo function that allows taking back any number of manipulation steps, and redoing any number of previosuly undone steps. To undo the last manipulation, one can either select the "Undo" entry in the "Edit" menu, or press the <Alt>+z hotkey. To redo the last undone manipulation, one can either select the "Redo" entry in the "Edit" menu, or press the <Alt>+x hotkey.
Atomic Manipulation Steps
A single invocation of the undo function will reverse the effects of the last atomic manipulation step, defined as one of the following:
- A single click on the "Randomize Angles" button in the Residue Dialog.
- A single dragging operation (between pressing and releasing the mouse button) of any of the "Beta Strand Shape Adjustment" sliders in the Structure Dialog.
- A single click on the "Flatten B-strand" button in the Structure Dialog.
- A single click on the "Reset to Standard" button in the Structure Dialog.
- A single dragging operation (between pressing and releasing the mouse button) of the 3D interaction widget, see Section 1.3.4.
- A single invocation of semi-automatic hydrogen bonding, see Section 1.3.5.
- Loading of a single dihedral angle file, see Section 1.3.6.
Changes that cannot be undone include creating a new protein by reading a prediction file or a PDB file (creating a new protein will clear the undo buffer), and downloading a protein conformation from a connected remote structure prediction server.
Undo Stack
ProteinShop manages undoable and undone manipulations as a single stack. This means that it works almost exactly like the "Back" and "Forward" button combination found in most web browsers. Even though it is possible to move back arbitrarily many steps, and to move backwards/forward as much as desired, the stack of undone operations is cleared whenever a new manipulation is performed. For example, if one undoes four manipulations, and then performs a new manipulation, the four undone manipulations can no longer be redone.