pub enum EditOp {
Split {
at: Frame,
},
Trim {
index: usize,
edge: TrimEdge,
to: Frame,
},
RippleDelete {
start: Frame,
end: Frame,
},
SetSpeed {
index: usize,
timescale: f64,
},
AddZoom {
zoom: ZoomSegment,
},
RemoveZoom {
id: ZoomId,
},
MoveZoom {
id: ZoomId,
start: Frame,
end: Frame,
},
SetCrop {
rect: CropRect,
},
SetAspect {
ratio: AspectRatio,
},
SetBackground {
config: BackgroundConfig,
},
SetCursor {
cursor: CursorConfig,
},
SetZoomEase {
id: ZoomId,
ease: EditEase,
},
}Expand description
A single, undoable edit applied to an EditProject.
Variants§
Split
Split the segment containing project frame at into two adjacent
segments sharing the cut. A no-op if at lands on a boundary.
Trim
Move segment index’s in/out point to source frame to,
clamped so the segment stays non-empty and within the source.
Fields
index: usizeIndex into EditProject::segments.
RippleDelete
Remove project range [start, end), closing the gap (ripple).
Fields
SetSpeed
Set segment index’s playback speed (timescale), sanitized to a
finite positive multiplier.
AddZoom
Add a zoom region. Its id is assigned fresh on insert (the id
field of the supplied value is ignored).
Fields
zoom: ZoomSegmentThe zoom to add (window / amount / mode / ease).
RemoveZoom
Remove the zoom with the given id.
MoveZoom
Move a zoom’s window to [start, end).
Fields
SetCrop
Set the crop rectangle. A full-frame rect clears the crop.
SetAspect
Set the output aspect ratio (reframes the export canvas).
Fields
ratio: AspectRatioNew aspect ratio.
SetBackground
Set the background framing (backdrop + padding / radius / shadow).
Fields
config: BackgroundConfigNew background config.
SetCursor
Set the cursor styling (size / smoothing / ripples / hide-static).
Fields
cursor: CursorConfigNew cursor config.
SetZoomEase
Retune the easing curve of the zoom with the given id (ED.13).