时间线交互批:I/O 标记范围 + 选间隙 + Cmd 拖放 ripple 插入 + 键盘移片段#186
Merged
Conversation
…ip nudge Four timeline interactions, frontend-only (InsertClips / RippleDeleteRanges backends already existed unreached): - Marked range (upstream 1:1): I/O mark start/end at the playhead (modifierless only, EditorWindowController.swift:104-113); single-endpoint collapses to a point, normalized swaps inverted ends, valid iff end>start (half-open), Escape clears range + selection. Drawn as the upstream track fill (0.06) + ruler band (0.10) + timecode-accent edge lines (0.80). Pure timelineRange.ts, 12 tests. - Gap selection + ripple close: clicking empty track space between clips selects the gap ([prevEnd, nextStart), open tail not selectable — upstream hitTestGap TimelineInputController.swift:730-746); dashed white box drawing; mutually exclusive with clip selection both ways. Shift+Delete routes gap -> marked-range (anchor clip's track, upstream :88) -> selected clips, exactly upstream EditorWindowController.swift:77-83. timelineGap.ts, 7 tests. - Ripple-insert drop: Cmd/Ctrl held during a media drop routes to InsertClips instead of AddClips (upstream performDragOperation TimelineView.swift:996) with the yellow insert indicator during dragover (:213-215). timelineInsert.ts plan builder, 8 tests; minimal browser-fallback case so vite dev demos it. - Clip nudge (OpenTake extension, user-requested; NOT upstream — documented): , / . move selected clips ±1 frame (±5 with Shift), arrows stay playhead (upstream-correct). Link groups expanded before moveClips (backend move_clips does NOT auto-expand — verified; matches the drag path), group floor at 0. timelineNudge.ts, 7 tests. +8 canvas render-path tests (colors/coords). Gates: fmt/clippy clean; cargo test --workspace 1518; pnpm build clean; pnpm test 378 (+42).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
四项交互(纯前端,后端 InsertClips/RippleDeleteRanges 早已就绪无人调用):①I/O 标入/出点 1:1 上游(无修饰键、单端点折叠、规范化交换、半开区间、Esc 清除、轨道 0.06+标尺 0.10+边线 0.80 绘制)②选间隙+⇧⌫ 闭合(上游 hitTestGap 语义、开放尾部不可选、与片段选择互斥、路由 gap→标记范围→选区)③Cmd/Ctrl 拖放=ripple 插入(上游 performDragOperation 修饰键+黄色指示)④键盘移片段 ,/. ±1(⇧±5)——OpenTake 扩展(用户指定),链接组前端展开(实证后端不自动展开)。42 新测试。门禁:workspace 1518 + web 378 全绿。