pyface.undo.i_command_stack module

class pyface.undo.i_command_stack.ICommandStack(adaptee, default=<class 'traits.adaptation.adaptation_error.AdaptationError'>)[source]

Bases: Interface

The command stack interface. A command stack is responsible for managing the changes to a data model and recording those changes so that they can be undone or redone.

clean = Bool()

This is the clean state of the stack. Its value changes as commands are undone and redone. It can also be explicity set to mark the current stack position as being clean (when the data is saved to disk for example).

redo_name = Str()

This is the name of the command that can be redone. It will be empty if there is no command that can be redone. It is maintained by the undo stack.

undo_manager = Instance(IUndoManager)

This is the undo manager that manages this stack.

undo_name = Str()

This is the name of the command that can be undone. It will be empty if there is no command that can be undone. It is maintained by the undo stack.

begin_macro(name)[source]

This begins a macro by creating an empty command with the given ‘name’. The commands passed to all subsequent calls to ‘push()’ will be contained in the macro until the next call to ‘end_macro()’. Macros may be nested. The stack is disabled (ie. nothing can be undone or redone) while a macro is being created (ie. while there is an outstanding ‘end_macro()’ call).

clear()[source]

This clears the stack, without undoing or redoing any commands, and leaves the stack in a clean state. It is typically used when all changes to the data have been abandoned.

end_macro()[source]

This ends a macro.

push(command)[source]

This executes a command and saves it on the command stack so that it can be subsequently undone and redone. ‘command’ is an instance that implements the ICommand interface. Its ‘do()’ method is called to execute the command. If any value is returned by ‘do()’ then it is returned by ‘push()’. The command stack will keep a reference to the result so that it can recognise it as an argument to a subsequent command (which allows a script to properly save a result needed later).

redo(sequence_nr=0)[source]

If ‘sequence_nr’ is 0 then the last command that was undone is redone and any result returned. Otherwise commands are redone up to and including the given ‘sequence_nr’ and any result of the last of these is returned.

undo(sequence_nr=0)[source]

If ‘sequence_nr’ is 0 then the last command is undone. Otherwise commands are undone up to and including the given ‘sequence_nr’.