[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44092] trunk/blender/source/blender/ editors/space_sequencer/sequencer_edit.c: Fixed copy-paste of sound strips in sequencer.

Sergey Sharybin sergey.vfx at gmail.com
Mon Feb 13 18:29:22 CET 2012


Revision: 44092
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44092
Author:   nazgul
Date:     2012-02-13 17:29:10 +0000 (Mon, 13 Feb 2012)
Log Message:
-----------
Fixed copy-paste of sound strips in sequencer.

Copy operator used to remove scene_sound from strips, but Paste operator didn't
restore which lead to total silence of newly added strips.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2012-02-13 14:45:17 UTC (rev 44091)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2012-02-13 17:29:10 UTC (rev 44092)
@@ -2555,12 +2555,12 @@
 	/* properties */
 }
 
-static void seq_del_sound(Scene *scene, Sequence *seq)
+static void seq_copy_del_sound(Scene *scene, Sequence *seq)
 {
 	if(seq->type == SEQ_META) {
 		Sequence *iseq;
 		for(iseq= seq->seqbase.first; iseq; iseq= iseq->next) {
-			seq_del_sound(scene, iseq);
+			seq_copy_del_sound(scene, iseq);
 		}
 	}
 	else if(seq->scene_sound) {
@@ -2611,7 +2611,7 @@
 
 	/* Need to remove anything that references the current scene */
 	for(seq= seqbase_clipboard.first; seq; seq= seq->next) {
-		seq_del_sound(scene, seq);
+		seq_copy_del_sound(scene, seq);
 	}
 
 	return OPERATOR_FINISHED;
@@ -2634,6 +2634,19 @@
 	/* properties */
 }
 
+static void seq_paste_add_sound(Scene *scene, Sequence *seq)
+{
+	if(seq->type == SEQ_META) {
+		Sequence *iseq;
+		for(iseq= seq->seqbase.first; iseq; iseq= iseq->next) {
+			seq_paste_add_sound(scene, iseq);
+		}
+	}
+	else if(seq->type == SEQ_SOUND) {
+		seq->scene_sound = sound_add_scene_sound_defaults(scene, seq);
+	}
+}
+
 static int sequencer_paste_exec(bContext *C, wmOperator *UNUSED(op))
 {
 	Scene *scene= CTX_data_scene(C);
@@ -2660,9 +2673,13 @@
 	BLI_movelisttolist(ed->seqbasep, &nseqbase);
 
 	/* make sure the pasted strips have unique names between them */
-	for(; iseq; iseq=iseq->next)
+	for(; iseq; iseq=iseq->next) {
 		seq_recursive_apply(iseq, apply_unique_name_cb, scene);
 
+		/* restore valid sound_scene for newly added strips */
+		seq_paste_add_sound(scene, iseq);
+	}
+
 	WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
 
 	return OPERATOR_FINISHED;




More information about the Bf-blender-cvs mailing list