Skip to content

feat(subtitle_editor): add timestamp panel and full-sentence text edi… - #47

Open
Evelynzzzz wants to merge 1 commit into
echo-loop:mainfrom
Evelynzzzz:pr-slim
Open

Evelynzzzz wants to merge 1 commit into
echo-loop:mainfrom
Evelynzzzz:pr-slim

Conversation

@Evelynzzzz

Copy link
Copy Markdown

…ting

  • Add a Timestamp panel (timestamp_editor_dialog.dart) to view/adjust subtitle timestamps while editing.
  • Add full-sentence subtitle text editing (edit_text_sheet.dart).
  • Wire both into subtitle_editor_controller / subtitle_simple_editor_screen and add l10n strings (en/zh) + a controller test.

…ting

- Add a Timestamp panel (timestamp_editor_dialog.dart) to view/adjust
  subtitle timestamps while editing.
- Add full-sentence subtitle text editing (edit_text_sheet.dart).
- Wire both into subtitle_editor_controller / subtitle_simple_editor_screen
  and add l10n strings (en/zh) + a controller test.
@kvnloo

kvnloo commented Aug 31, 2026

Copy link
Copy Markdown

Useful subtitle-editor surface — timestamp sheet + full-sentence text edit with proportional word rebuild is the right split.

This branch is 1 commit ahead and 230 behind main (compare as of 2026-08-31). Today's HEAD 270c268f is FIX: 修复媒体引擎生命周期竞态. playRange in this PR still does _startPlayheadTicker + _audioEngine.playRangeOnce + finally _stopActivePlayback. Please rebase onto current main and wire preview playback through the post-fix session/lifecycle helpers instead of reintroducing the old pattern. AGENTS.md §6.5 already requires session tokens and drop-stale-callback.

Preview vs pending times (before rebase even): _playStart / _playEnd clip using sentence.startTime / sentence.endTime from snapshot, not the in-sheet _startTime / _endTime. After the user nudges a bound, Play still uses the saved sentence, and if the new start is past the saved end, playRange no-ops on start >= end. Preview should use the pending durations (clamped to audio length).

Also: editSentenceText has tests; updateSentenceTimestamps and playRange do not. assets/icon/unlock.svg is CRLF-only — drop it from the PR.

No other review in the thread; happy to re-read after rebase.

1 similar comment
@kvnloo

kvnloo commented Aug 31, 2026

Copy link
Copy Markdown

Useful subtitle-editor surface — timestamp sheet + full-sentence text edit with proportional word rebuild is the right split.

This branch is 1 commit ahead and 230 behind main (compare as of 2026-08-31). Today's HEAD 270c268f is FIX: 修复媒体引擎生命周期竞态. playRange in this PR still does _startPlayheadTicker + _audioEngine.playRangeOnce + finally _stopActivePlayback. Please rebase onto current main and wire preview playback through the post-fix session/lifecycle helpers instead of reintroducing the old pattern. AGENTS.md §6.5 already requires session tokens and drop-stale-callback.

Preview vs pending times (before rebase even): _playStart / _playEnd clip using sentence.startTime / sentence.endTime from snapshot, not the in-sheet _startTime / _endTime. After the user nudges a bound, Play still uses the saved sentence, and if the new start is past the saved end, playRange no-ops on start >= end. Preview should use the pending durations (clamped to audio length).

Also: editSentenceText has tests; updateSentenceTimestamps and playRange do not. assets/icon/unlock.svg is CRLF-only — drop it from the PR.

No other review in the thread; happy to re-read after rebase.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants