[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30087] trunk/blender/source/blender: fix for duplicating metastrips, unique names and animation data.
Campbell Barton
ideasman42 at gmail.com
Wed Jul 7 18:37:42 CEST 2010
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;
More information about the Bf-blender-cvs
mailing list