Undo Support is required for Gmodulo Console:
Use cases:
----------
Peter loads a module. He wants to return to previous state.
Adam performs a set of operations. He commits all of them. Some steps ahead, he wants to return to previous state.
Rationale:
----------
Gmodulo COnsole undo system must operate over instant commads, and also over transaction commands. Transaction commands, or set of commands are a all or nothing approach. If some of the commands performed over are not undoable, then, all transaction will be set as undoable.
Implementation:
GwOperation implements ECancellable, EProgressable
GwActionUndoableEntry {
GtkAction action.
GCallback undo_callback
GwOperationProxy proxy >??
}
gw_action_undoable_get_redo_callback
gw_action_undoable_get_undo_callback
gw_action_undoable_get_operation_proxy
Internaly, action_activate, calls GwUndoManager and create a GwUndoable object and set undo, redo values for it, an all required data tu support undo. After that, if ShellOperationMode is transaction...
move kudo-undoable to gmodulo-console
move kudo-undo-manager to gmodulo-console
move koto-undo-action? to gmodulo-console
move marlin-operation to gmodulo-console