[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23939] trunk/blender: - listener for sequencer space panels added for frame changes, now redraws during transform

Campbell Barton ideasman42 at gmail.com
Mon Oct 19 12:07:19 CEST 2009


Revision: 23939
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23939
Author:   campbellbarton
Date:     2009-10-19 12:07:19 +0200 (Mon, 19 Oct 2009)

Log Message:
-----------
- listener for sequencer space panels added for frame changes, now redraws during transform
- invalid pointer was used for getting the sequencer length crashing blender or setting the length to negative values.
- printf_strip(seq) for debugging sequence strip locations
- Spelling: Cheet Sheet -> Cheat Sheet

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_info.py
    trunk/blender/source/blender/blenkernel/BKE_sequence.h
    trunk/blender/source/blender/blenkernel/intern/sequence.c
    trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/makesrna/intern/rna_sequence.c

Modified: trunk/blender/release/scripts/ui/space_info.py
===================================================================
--- trunk/blender/release/scripts/ui/space_info.py	2009-10-19 09:57:55 UTC (rev 23938)
+++ trunk/blender/release/scripts/ui/space_info.py	2009-10-19 10:07:19 UTC (rev 23939)
@@ -287,7 +287,7 @@
 
 class HELP_OT_operator_cheat_sheet(bpy.types.Operator):
 	__idname__ = "help.operator_cheat_sheet"
-	__label__ = "Operator Cheet Sheet (new textblock)"
+	__label__ = "Operator Cheat Sheet (new textblock)"
 	def execute(self, context):
 		op_strings = []
 		tot = 0

Modified: trunk/blender/source/blender/blenkernel/BKE_sequence.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sequence.h	2009-10-19 09:57:55 UTC (rev 23938)
+++ trunk/blender/source/blender/blenkernel/BKE_sequence.h	2009-10-19 10:07:19 UTC (rev 23939)
@@ -135,6 +135,7 @@
 /* ********************* prototypes *************** */
 
 /* sequence.c */
+void printf_strip(struct Sequence *seq);
 
 // extern
 void seq_free_sequence(struct Scene *scene, struct Sequence *seq);

Modified: trunk/blender/source/blender/blenkernel/intern/sequence.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequence.c	2009-10-19 09:57:55 UTC (rev 23938)
+++ trunk/blender/source/blender/blenkernel/intern/sequence.c	2009-10-19 10:07:19 UTC (rev 23939)
@@ -69,6 +69,13 @@
 /* **** XXX ******** */
 
 
+void printf_strip(Sequence *seq)
+{
+	fprintf(stderr, "name: '%s', len:%d, start:%d, (startofs:%d, endofs:%d), (startstill:%d, endstill:%d), machine:%d, (startdisp:%d, enddisp:%d)\n",
+			seq->name, seq->len, seq->start, seq->startofs, seq->endofs, seq->startstill, seq->endstill, seq->machine, seq->startdisp, seq->enddisp);
+	fprintf(stderr, "\tseq_tx_set_final_left: %d %d\n\n", seq_tx_get_final_left(seq, 0), seq_tx_get_final_right(seq, 0));
+}
+
 /* **********************************************************************
    alloc / free functions
    ********************************************************************** */
@@ -3238,7 +3245,7 @@
 {
 	if (val < (seq)->start) {
 		seq->startstill = abs(val - (seq)->start);
-				(seq)->startofs = 0;
+		seq->startofs = 0;
 	} else {
 		seq->startofs = abs(val - (seq)->start);
 		seq->startstill = 0;
@@ -3249,7 +3256,7 @@
 {
 	if (val > (seq)->start + (seq)->len) {
 		seq->endstill = abs(val - (seq->start + (seq)->len));
-		(seq)->endofs = 0;
+		seq->endofs = 0;
 	} else {
 		seq->endofs = abs(val - ((seq)->start + (seq)->len));
 		seq->endstill = 0;

Modified: trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c	2009-10-19 09:57:55 UTC (rev 23938)
+++ trunk/blender/source/blender/editors/space_sequencer/space_sequencer.c	2009-10-19 10:07:19 UTC (rev 23939)
@@ -245,6 +245,14 @@
 {
 	/* context changes */
 	switch(wmn->category) {
+		case NC_SCENE:
+		switch(wmn->data) {
+			case ND_FRAME:
+			case ND_SEQUENCER:
+				ED_region_tag_redraw(ar);
+				break;
+		}
+		break;
 		case NC_SPACE:
 			if(wmn->data == ND_SPACE_SEQUENCER)
 				ED_region_tag_redraw(ar);

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2009-10-19 09:57:55 UTC (rev 23938)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2009-10-19 10:07:19 UTC (rev 23939)
@@ -4015,38 +4015,52 @@
 static void freeSeqData(TransInfo *t)
 {
 	Editing *ed= seq_give_editing(t->scene, FALSE);
-	if (ed && !(t->state == TRANS_CANCEL)) {
+
+	if(ed != NULL) {
 		ListBase *seqbasep= ed->seqbasep;
-		Sequence *seq;
-
+		TransData *td= t->data;
 		int a;
-		TransData *td= t->data;
 
 		/* prevent updating the same seq twice
 		 * if the transdata order is changed this will mess up
 		 * but so will TransDataSeq */
 		Sequence *seq_prev= NULL;
+		Sequence *seq;
 
-		/* flush to 2d vector from internally used 3d vector */
-		for(a=0; a<t->total; a++, td++) {
-			seq= ((TransDataSeq *)td->extra)->seq;
-			if ((seq != seq_prev) && (seq->depth==0) && (seq->flag & SEQ_OVERLAP)) {
-				shuffle_seq(seqbasep, seq);
+
+		if (!(t->state == TRANS_CANCEL)) {
+
+			/* flush to 2d vector from internally used 3d vector */
+			for(a=0; a<t->total; a++, td++) {
+				seq= ((TransDataSeq *)td->extra)->seq;
+				if ((seq != seq_prev) && (seq->depth==0) && (seq->flag & SEQ_OVERLAP)) {
+					shuffle_seq(seqbasep, seq);
+				}
+
+				seq_prev= seq;
 			}
 
-			seq_prev= seq;
+			for(seq= seqbasep->first; seq; seq= seq->next) {
+				/* We might want to build a list of effects that need to be updated during transform */
+				if(seq->type & SEQ_EFFECT) {
+					if		(seq->seq1 && seq->seq1->flag & SELECT) calc_sequence(seq);
+					else if	(seq->seq2 && seq->seq2->flag & SELECT) calc_sequence(seq);
+					else if	(seq->seq3 && seq->seq3->flag & SELECT) calc_sequence(seq);
+				}
+			}
+
+			sort_seq(t->scene);
 		}
-
-		for(seq= seqbasep->first; seq; seq= seq->next) {
-			/* We might want to build a list of effects that need to be updated during transform */
-			if(seq->type & SEQ_EFFECT) {
-				if		(seq->seq1 && seq->seq1->flag & SELECT) calc_sequence(seq);
-				else if	(seq->seq2 && seq->seq2->flag & SELECT) calc_sequence(seq);
-				else if	(seq->seq3 && seq->seq3->flag & SELECT) calc_sequence(seq);
+		else {
+			/* Cancelled, need to update the strips display */
+			for(a=0; a<t->total; a++, td++) {
+				seq= ((TransDataSeq *)td->extra)->seq;
+				if ((seq != seq_prev) && (seq->depth==0)) {
+					calc_sequence_disp(seq);
+				}
+				seq_prev= seq;
 			}
 		}
-
-		sort_seq(t->scene);
 	}
 
 	if (t->customData) {

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequence.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_sequence.c	2009-10-19 09:57:55 UTC (rev 23938)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequence.c	2009-10-19 10:07:19 UTC (rev 23939)
@@ -85,7 +85,7 @@
 static int rna_SequenceEditor_length_get(PointerRNA *ptr)
 {
 	Sequence *seq= (Sequence*)ptr->data;
-	return seq_tx_get_final_right(seq, 1)-seq_tx_get_final_left(seq, 1);
+	return seq_tx_get_final_right(seq, 0)-seq_tx_get_final_left(seq, 0);
 }
 
 static void rna_SequenceEditor_channel_set(PointerRNA *ptr, int value)





More information about the Bf-blender-cvs mailing list