enthought / enthought/pyface

Potential Undo/Redo System Enhancements

Open
#886 0 comments 0 reactions 0 assignees View on GitHub
difficulty: intermediate type: enhancement
Dominant language
Python
Stars
115
Forks
54
PR merge metrics
No merged PRs in 30d

Description

This gives some ideas for enhanced capabilities coming from features of the wxPython and Qt undo/redo systems, or which seem obvious:

- [ ] make a context manager for `begin_macro`/`end_macro`
- [ ] convenience methods on `UndoManager` for creating undo and redo actions for that manager.
- [ ] a way to mark a command as doing nothing (eg. because merges cancel each other out) and have it removed from the stack (like Qt's `isObsolete`)
- [ ] some way of handling commands which cannot be undone and which can signal that prior history is to be removed (maybe)
- [ ] add length and index to the `ICommandStack` interface and possibly a way to access commands by external code
- [ ] (possibly) shims for interoperation with toolkit-level undo/redo (eg. wrappers to make them conform to the Pyface API; or vice-versa to make the Pyface API implement the toolkit object API) to improve interoperability.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.