Repository navigation
Conversation
…others Giving five clips the same look or four captions the same animation meant repeating every setting by hand on each one. Copy style now takes a timeline clip's volume, EQ, speed, color mask and shape mask, or a text, sticker, drawing or visualizer's opacity, animations, shape mask and (for a text) its look; Paste style puts it on the selected item or, through multi-select, on several at once, as one undo step. A pasted color mask is baked into each target in turn behind a progress overlay; a target whose render fails keeps its own mask and takes the rest. Filters and adjustments stay out of a clip's style because they are timeline bars that can span several clips, not clip settings. Layer multi-select now takes any layer a style can go onto, so Combine is only offered when the selection can actually be combined. Closes #10258
roborev: Review unavailable (
|
hm21
marked this pull request as ready for review
October 19, 2026 09:28
hm21
requested review from
dcadenas and
mbradley
and removed request for
a team
October 19, 2026 09:28
This comment has been minimized.
This comment has been minimized.
…y-paste-style # Conflicts: # mobile/lib/screens/video_editor/video_editor_screen.dart # mobile/lib/widgets/video_editor/timeline_editor/controls/video_editor_timeline_clip_controls.dart # mobile/test/widgets/video_editor/timeline_editor/controls/video_editor_timeline_clip_controls_test.dart # mobile/test/widgets/video_editor/timeline_editor/controls/video_editor_timeline_control_bar_test.dart # mobile/test/widgets/video_editor/timeline_editor/video_editor_timeline_test.dart # mobile/test/widgets/video_editor/video_editor_scaffold_test.dart
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…y-paste-style # Conflicts: # mobile/lib/widgets/video_editor/timeline_editor/controls/video_editor_timeline_multi_select_controls.dart # mobile/test/widgets/video_editor/timeline_editor/controls/video_editor_timeline_clip_controls_test.dart # mobile/test/widgets/video_editor/timeline_editor/controls/video_editor_timeline_multi_select_controls_test.dart
This comment has been minimized.
This comment has been minimized.
…y-paste-style # Conflicts: # mobile/lib/l10n/app_am.arb # mobile/lib/l10n/app_ar.arb # mobile/lib/l10n/app_bg.arb # mobile/lib/l10n/app_de.arb # mobile/lib/l10n/app_es.arb # mobile/lib/l10n/app_fil.arb # mobile/lib/l10n/app_fr.arb # mobile/lib/l10n/app_id.arb # mobile/lib/l10n/app_it.arb # mobile/lib/l10n/app_ja.arb # mobile/lib/l10n/app_ko.arb # mobile/lib/l10n/app_nl.arb # mobile/lib/l10n/app_pl.arb # mobile/lib/l10n/app_pt.arb # mobile/lib/l10n/app_ro.arb # mobile/lib/l10n/app_sv.arb # mobile/lib/l10n/app_tr.arb # mobile/lib/widgets/video_editor/clip_editor_result_listeners.dart
Member
Author
|
Hi @dcadenas and @mbradley 👋 friendly ping on this one — whenever you get a moment, a review would be great. It looks bigger than it is: most of the files are translations and tests. The core is Thanks a lot! Happy to walk through anything. |
Mobile PR PreviewPreview refreshed for Last refresh:
|
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.
Description
Giving five clips the same look, matching the EQ of two takes, or giving every caption the same enter animation meant setting each item up by hand, one tap at a time, and it was easy to end up slightly off. This adds Copy style and Paste style to the timeline's action bars.
Clips. Copy style takes a timeline clip's volume, EQ, speed, color mask and shape mask. Paste style puts them on the selected clip, or through clip multi-select on several clips at once. Pasting makes the target match the source, so a style copied from a clip without a color mask takes the target's color mask away (as a flat EQ flattens the target's).
Layers (text, sticker, drawing, audio visualizer). Copy style takes opacity, enter/leave/loop animations and the shape mask, and for a text also its look (font, colors, background, alignment, size, outline, shadow — the same set saved title styles use). Each target takes what fits: a sticker takes a text's animations but not its look or its letter-by-letter/word-by-word typing, a visualizer takes no mask, and a layer with keyframes keeps the opacity its keyframes set. A shape mask keeps its proportions when pasted onto a differently shaped layer (a circle on a square sticker stays a circle on a wide text).
Layer multi-select is wider. Pasting onto several layers needs them selectable together, but multi-select only took static drawings or stickers, because it existed for Combine. It now takes every layer a style can go onto, mixed kinds included; Combine is offered only when the selection is two or more combinable drawings or two or more combinable stickers, and the bar names the selection "layers" when it is not only drawings or only stickers. The two kind-specific "Select multiple drawings/stickers" accessibility labels became one "Select multiple layers".
The copied clip style and the copied layer style live in a small cubit scoped to the open editor, kept apart because neither can be pasted where the other goes. The "Style copied" confirmation shows for 1.5 s instead of the default 4 s, because it floats over the action bar the next tap (Paste style or Select) needs.
Related Issue: Closes #10258
Demo
Clip style — copy speed and a color mask from the first clip, paste onto clips 2 and 3 in one go, undo and redo:
style_clips.mp4
Layer style — copy a text's look and animations, paste onto a plain text and a sticker, undo and redo:
style_layers.mp4
Out of Scope
Verification
flutter analyze lib test integration_test: no issues.scripts/ci/run_guards.sh: pass (incl. plural categories, orphaned ARB keys, unpinned assertions).ClipStyle/LayerStyle, mask transfer, the clipboard cubit, the paste result listener (one history entry, failure snackbar) and the copy/paste actions in both action bars.docs/VIDEO_EDITOR_FEATURES.mddescribes the feature.Type of Change
Agent identity