VSE: Standardize reset retiming operator

Every retiming operator works on selected strips. However, the reset
retiming operator only works on the active strip.

This patch standardizes the behavior so that all selected strips have
their retiming reset. This gives more control to the user to reset
many strips' retiming in bulk.

Pull Request: https://projects.blender.org/blender/blender/pulls/123973
This commit is contained in:
John Kiril Swenson
2024-07-01 23:12:52 +02:00
committed by Richard Antalik
parent 952f41a9fd
commit 607445da5f

View File

@@ -137,6 +137,10 @@ static bool retiming_poll(bContext *C)
return true;
}
/*-------------------------------------------------------------------- */
/** \name Retiming Reset
* \{ */
static void retiming_key_overlap(Scene *scene, Sequence *seq)
{
ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene));
@@ -149,19 +153,18 @@ static void retiming_key_overlap(Scene *scene, Sequence *seq)
SEQ_transform_handle_overlap(scene, seqbase, strips, dependant, true);
}
/*-------------------------------------------------------------------- */
/** \name Retiming Reset
* \{ */
static int sequencer_retiming_reset_exec(bContext *C, wmOperator * /*op*/)
{
Scene *scene = CTX_data_scene(C);
const Editing *ed = SEQ_editing_get(scene);
Sequence *seq = ed->act_seq;
SEQ_retiming_data_clear(seq);
for (Sequence *seq : SEQ_query_selected_strips(ed->seqbasep)) {
if (SEQ_retiming_is_allowed(seq)) {
SEQ_retiming_data_clear(seq);
retiming_key_overlap(scene, seq);
}
}
retiming_key_overlap(scene, seq);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
}