Phase 27: strengthen undo transactions and improve editor workflow
This commit is contained in:
parent
901a536f10
commit
c4daef7c42
21 changed files with 460 additions and 27 deletions
|
|
@ -720,10 +720,37 @@ Make common editing actions quick, discoverable, and safe to reverse.
|
|||
- Keep presentation logic out of the core C engine.
|
||||
|
||||
### Acceptance criteria
|
||||
- Documented editing operations have predictable undo/redo behavior.
|
||||
- Undo and redo restore the project model and relevant engine state consistently.
|
||||
- Failed operations do not leave partial changes behind.
|
||||
- Common tasks can be completed using documented keyboard and mouse interactions.
|
||||
- [x] Documented editing operations have predictable undo/redo behavior.
|
||||
- [x] Undo and redo restore the project model and relevant engine state consistently.
|
||||
- [x] Failed operations do not leave partial changes behind.
|
||||
- [x] Common tasks can be completed using documented keyboard and mouse interactions.
|
||||
|
||||
Implemented: operation-by-operation audit in EDITING.md; reserved history storage
|
||||
before GUI command mutation/candidate publication, followed by allocation-free
|
||||
snapshot capture; recording start creates no empty history entry and each
|
||||
completed take is one undoable reference edit; unavailable main-menu history
|
||||
steps disabled; surviving editor selections and open piano-roll context retained
|
||||
on undo; piano-roll history shortcuts/context menu and pointer-targeted graph
|
||||
context menus; input focus guards and synchronous busy feedback. Existing C
|
||||
graph/batch note commands and snapshot history remain the model boundary; FLTK
|
||||
presentation stays in C++. No project format change (v10 retained).
|
||||
|
||||
Validation: warning-enabled core/GUI builds and full tests; interposed allocation
|
||||
failure for each history reservation and capture with all allocations disabled;
|
||||
GUI history-reservation failure retains document, engine submission count and
|
||||
redo; completed-take undo grouping retains WAV; selection/context-target tests;
|
||||
existing grouped gestures/batches, candidate/backend rollback and save/reopen;
|
||||
workflow/software JACK GUI integration, reliability/callback guards, Clang static
|
||||
analysis, core/GUI ASan+UBSan, optional-dependency-free build, installation and
|
||||
package relocation. GUI sanitizer runs retain the existing fontconfig-only leak
|
||||
suppression. EDITING.md supplies a reproducible native manual procedure for
|
||||
popup dismissal, text focus, large synchronous operations and recorded takes.
|
||||
|
||||
Native manual popup/focus/large-file usability checks, broad accessibility and
|
||||
physical-device listening/endurance remain pending. History remains bounded and
|
||||
session-only; selection/layout history, arbitrary command grouping, background
|
||||
loading and destructive source-media editing are not supplied. Preparation
|
||||
failure can stop/reset transport while retaining the old document/history.
|
||||
|
||||
## Phase 28 — Project Format, Compatibility, and Portability
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue