Skip to content

Add single-source split/delete timeline editing - #9

Open
brunomendonca-com wants to merge 1 commit into
omacom:masterfrom
brunomendonca-com:feature/split-delete-editing
Open

brunomendonca-com wants to merge 1 commit into
omacom:masterfrom
brunomendonca-com:feature/split-delete-editing

Conversation

@brunomendonca-com

Copy link
Copy Markdown

Summary

Add single-source, non-destructive split/delete editing while keeping export as one MP4:

  • T splits at the playhead and selects the right-hand clip.
  • Each clip has independently draggable start/end handles. Retained ranges remain in source order and cannot overlap.
  • Delete / Backspace removes the selected clip and closes the gap.
  • Split/Delete buttons include shortcut tooltips and accessible names; help and README are updated.
  • Preview and seeking traverse retained ranges. Export concatenates those ranges with ffmpeg, supporting sources with or without audio.
  • Deleting the final clip clears the video/timeline and returns to Open a video.

The implementation includes a testable clip model, whole-timeline dirty-state tracking, export snapshots, and file-dialog guards/cancellation handling. Multi-range export belongs with split editing because independently resizing split clips can already create gaps.

Scope / draft status

This is a proposal to extend the current single-range trimmer. Keeping it draft for feedback on whether single-source multi-clip editing fits Omacut's scope, and for further desktop/media validation.

No undo, reordering, transitions, multiple source files, or project persistence. Preview uses source seeks and is not guaranteed seamless across cuts. The timeline currently uses a representative thumbnail per clip.

Validation

On the standalone branch:

  • QT_QPA_PLATFORM=offscreen ./bin/test: 36 backend/UI/export + 11 clip-model passes, including QtTest initialization/cleanup.
  • ./bin/build: successful.
  • git diff --check: clean.

Tests cover split/resize/delete boundaries, both deletion keys and buttons, independent handle dragging, actual preview jumps over removed material, export snapshot isolation, invalid ranges, final-clip reset/reloading, and synthetic color-sequence exports verifying duration/order with and without audio.

Remaining validation: interactive desktop testing, frame-rate variations, unusual audio offsets/synchronization at cuts, and more real-world exports. A desktop-platform run of the combined development branch failed the right-handle mouse-drag test while offscreen passed; that discrepancy still needs investigation. Existing scale-argument tests pass, but broader multi-range scaling integration coverage is still needed.

Independence

This PR targets upstream master directly and has no dependency on an unmerged PR. Number-key seeking is deliberately excluded and proposed separately against the existing upstream trim API. If that proposal merges first, this PR will adapt it to retained timeline time during integration.

@brunomendonca-com
brunomendonca-com force-pushed the feature/split-delete-editing branch from b7ad2f1 to 14dc9d2 Compare September 10, 2026 03:08
@brunomendonca-com
brunomendonca-com marked this pull request as ready for review September 10, 2026 03:19
@tristonarmstrong

tristonarmstrong commented Sep 13, 2026

Copy link
Copy Markdown

you should include a demo with this pr

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