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

Reply via email to