diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-02-16 20:58:50 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-02-16 20:58:50 +0300 |
commit | 57308d838262f3d059b688aa31718af25fb21abb (patch) | |
tree | 2bb8a3119d1eeace4035d522adf8bb47cbf23fbd /source/blender/editors | |
parent | 24a0eececfaf35ffc19053266254b6d5799c87a1 (diff) |
[#21102] Nonunique ID names in sequencer!
now uniqute names are ensured with recursive name checking on the scene
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_add.c | 2 | ||||
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 21 |
2 files changed, 16 insertions, 7 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c index bae4467e40c..bd1053d8d77 100644 --- a/source/blender/editors/space_sequencer/sequencer_add.c +++ b/source/blender/editors/space_sequencer/sequencer_add.c @@ -513,7 +513,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op) else strcpy(seq->name+2, give_seqname(seq)); - seqUniqueName(ed->seqbasep, seq); + seqbase_unique_name_recursive(&ed->seqbase, seq); sh = get_sequence_effect(seq); diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 0fe074a4012..ce8d99da3a9 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -862,7 +862,7 @@ static Sequence *dupli_seq(struct Scene *scene, Sequence *seq) " now...\n"); } - seqUniqueName(scene->ed->seqbasep, seqn); + seqbase_unique_name_recursive(&scene->ed->seqbase, seqn); return seqn; } @@ -1735,11 +1735,20 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; recurs_dupli_seq(scene, ed->seqbasep, &new, TRUE); - addlisttolist(ed->seqbasep, &new); - WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + if(new.first) { + Sequence * seq= new.first; + /* rely on the new list being added at the end */ + addlisttolist(ed->seqbasep, &new); - return OPERATOR_FINISHED; + for( ; seq; seq= seq->next) + seqbase_unique_name_recursive(&ed->seqbase, seq); + + WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); + return OPERATOR_FINISHED; + } + + return OPERATOR_CANCELLED; } static int sequencer_add_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event) @@ -1905,7 +1914,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) shuffle_seq(ed->seqbasep, seq_new, scene); } - seqUniqueName(scene->ed->seqbasep, seq_new); + seqbase_unique_name_recursive(&scene->ed->seqbase, seq_new); cfra++; start_ofs += step; @@ -2069,7 +2078,7 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) seq_update_muting(scene, ed); - seqUniqueName(scene->ed->seqbasep, seqm); + seqbase_unique_name_recursive(&scene->ed->seqbase, seqm); WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); |