Revision: 30087 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30087 Author: campbellbarton Date: 2010-07-07 18:37:41 +0200 (Wed, 07 Jul 2010)
Log Message: ----------- fix for duplicating metastrips, unique names and animation data. Modified Paths: -------------- trunk/blender/source/blender/blenkernel/intern/sequencer.c trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c =================================================================== --- trunk/blender/source/blender/blenkernel/intern/sequencer.c 2010-07-07 16:23:38 UTC (rev 30086) +++ trunk/blender/source/blender/blenkernel/intern/sequencer.c 2010-07-07 16:37:41 UTC (rev 30087) @@ -3881,7 +3881,6 @@ void seq_dupe_animdata(Scene *scene, char *name_from, char *name_to) { char str_from[32]; - char str_to[32]; FCurve *fcu; FCurve *fcu_last; FCurve *fcu_cpy; @@ -3891,7 +3890,6 @@ return; sprintf(str_from, "[\"%s\"]", name_from); - sprintf(str_to, "[\"%s\"]", name_to); fcu_last= scene->adt->action->curves.last; @@ -4265,10 +4263,8 @@ " now...\n"); } - if(dupe_flag & SEQ_DUPE_UNIQUE_NAME) { + if(dupe_flag & SEQ_DUPE_UNIQUE_NAME) seqbase_unique_name_recursive(&scene->ed->seqbase, seqn); - printf("%s %s\n", seqn->name+2, seq->name+2); - } if(dupe_flag & SEQ_DUPE_ANIM) seq_dupe_animdata(scene, seq->name+2, seqn->name+2); Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c =================================================================== --- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c 2010-07-07 16:23:38 UTC (rev 30086) +++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c 2010-07-07 16:37:41 UTC (rev 30087) @@ -1588,6 +1588,18 @@ } /* duplicate operator */ +static int apply_unique_name_cb(Sequence *seq, void *arg_pt) +{ + Scene *scene= (Scene *)arg_pt; + char name[sizeof(seq->name)-2]; + + strcpy(name, seq->name+2); + seqbase_unique_name_recursive(&scene->ed->seqbase, seq); + seq_dupe_animdata(scene, name, seq->name+2); + return 1; + +} + static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op) { Scene *scene= CTX_data_scene(C); @@ -1605,12 +1617,8 @@ /* rely on the nseqbase list being added at the end */ addlisttolist(ed->seqbasep, &nseqbase); - for( ; seq; seq= seq->next) { - char name[sizeof(seq->name)-2]; - strcpy(name, seq->name+2); - seqbase_unique_name_recursive(&ed->seqbase, seq); - seq_dupe_animdata(scene, name, seq->name+2); - } + for( ; seq; seq= seq->next) + seq_recursive_apply(seq, apply_unique_name_cb, scene); WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene); return OPERATOR_FINISHED; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs