Skip to content

History window: the whole timeline, Undo and Redo #73

Description

@AliceLafox

The slot tab (#50) answers "what happened to this slot". This one answers "what
happened at all": one timeline across every slot and every connection, sharing
the tab's model and rows so the two can never drift into two different truths.

  • Rows carry the time, the action, the slots it touched, the words for what
    changed, and the state of the take behind it: kept, audio no longer kept,
    recorded on the pedal, interrupted.
  • Filter by slot (clicking a slot badge filters to it), pin a row so freeing space
    (History storage: show what it costs, free it on request #74) never releases its audio, and Export take to... — the bytes live in the
    store now, so the app writes a file where the user asks instead of revealing a folder.
  • Connection markers sit in the timeline like any other row: "plugged in — the
    pedal brought slots 12 to 14".

Undo and Redo

In the Edit menu, on Cmd-Z and Cmd-Shift-Z, with the target named on the item so
the keystroke is never a guess.

An undo is a new row, never a stack pop. The bytes really were written to the
pedal, and a history that pretended otherwise would be lying about a write that
happened. Redo is the undo of that undo, and it is a row too. Nothing is ever
rewritten or cut from the timeline: picking a row in the middle and restoring
from it writes forward, on top, like everything else.

Crossing a connection marker, or a row that records a change made on the pedal
itself, is allowed — the history is one continuous line, and "put back what was
there before I unplugged" is a real request. But the first press that crosses one
shows what it is about to discard. A speed bump, not a wall.

Undo is ours as a word for the app's own timeline; the pedal's UNDO/REDO stays
the pedal's, and the guide keeps them apart.

Disabled while the pedal is busy or away, like every other mutation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions