Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-02-16 20:58:50 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-02-16 20:58:50 +0300
commit57308d838262f3d059b688aa31718af25fb21abb (patch)
tree2bb8a3119d1eeace4035d522adf8bb47cbf23fbd /source/blender/editors
parent24a0eececfaf35ffc19053266254b6d5799c87a1 (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.c2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c21
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);