[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36972] trunk/blender/source/blender: better error reporting for seq_swap()

M.G. Kishalmi lmg at kishalmi.net
Sat May 28 11:59:34 CEST 2011


Revision: 36972
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36972
Author:   lmg
Date:     2011-05-28 09:59:34 +0000 (Sat, 28 May 2011)
Log Message:
-----------
better error reporting for seq_swap()

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_sequencer.h
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
    trunk/blender/source/blender/makesrna/intern/rna_sequencer_api.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h	2011-05-28 09:34:45 UTC (rev 36971)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h	2011-05-28 09:59:34 UTC (rev 36972)
@@ -279,7 +279,7 @@
 int seqbase_isolated_sel_check(struct ListBase *seqbase);
 void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage, int keep_file_handles);
 struct Sequence	*seq_dupli_recursive(struct Scene *scene, struct Scene *scene_to, struct Sequence * seq, int dupe_flag);
-int seq_swap(struct Sequence *seq_a, struct Sequence *seq_b);
+int seq_swap(struct Sequence *seq_a, struct Sequence *seq_b, const char **error_str);
 
 void seq_update_sound(struct Scene* scene, struct Sequence *seq);
 void seq_update_muting(struct Scene* scene, struct Editing *ed);

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2011-05-28 09:34:45 UTC (rev 36971)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2011-05-28 09:59:34 UTC (rev 36972)
@@ -3207,26 +3207,30 @@
 	return NULL;
 }
 
-int seq_swap(Sequence *seq_a, Sequence *seq_b)
+int seq_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str)
 {
 	char name[sizeof(seq_a->name)];
 
 	if(seq_a->len != seq_b->len)
+		*error_str= "Strips must be the same length";
 		return 0;
 
 	/* type checking, could be more advanced but disalow sound vs non-sound copy */
 	if(seq_a->type != seq_b->type) {
 		if(seq_a->type == SEQ_SOUND || seq_b->type == SEQ_SOUND) {
+			*error_str= "Strips were not compatible";
 			return 0;
 		}
 
 		/* disallow effects to swap with non-effects strips */
 		if((seq_a->type & SEQ_EFFECT) != (seq_b->type & SEQ_EFFECT)) {
+			*error_str= "Strips were not compatible";
 			return 0;
 		}
 
 		if((seq_a->type & SEQ_EFFECT) && (seq_b->type & SEQ_EFFECT)) {
 			if(get_sequence_effect_num_inputs(seq_a->type) != get_sequence_effect_num_inputs(seq_b->type)) {
+				*error_str= "Strips must have the same number of inputs";
 				return 0;
 			}
 		}

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2011-05-28 09:34:45 UTC (rev 36971)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2011-05-28 09:59:34 UTC (rev 36972)
@@ -2719,14 +2719,15 @@
 	Scene *scene= CTX_data_scene(C);
 	Sequence *seq_act;
 	Sequence *seq_other;
+	const char *error_msg;
 
 	if(seq_active_pair_get(scene, &seq_act, &seq_other) == 0) {
 		BKE_report(op->reports, RPT_ERROR, "Must select 2 strips");
 		return OPERATOR_CANCELLED;
 	}
 
-	if(seq_swap(seq_act, seq_other) == 0) {
-		BKE_report(op->reports, RPT_ERROR, "Strips were not compatible");
+	if(seq_swap(seq_act, seq_other, &error_msg) == 0) {
+		BKE_report(op->reports, RPT_ERROR, error_msg);
 		return OPERATOR_CANCELLED;
 	}
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer_api.c	2011-05-28 09:34:45 UTC (rev 36971)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer_api.c	2011-05-28 09:59:34 UTC (rev 36972)
@@ -51,8 +51,10 @@
 
 static void rna_Sequence_swap_internal(Sequence *seq_self, ReportList *reports, Sequence *seq_other)
 {
-	if(seq_swap(seq_self, seq_other) == 0)
-		BKE_report(reports, RPT_ERROR, "both strips must be the same length");
+	const char *error_msg;
+	
+	if(seq_swap(seq_self, seq_other, &error_msg) == 0)
+		BKE_report(reports, RPT_ERROR, error_msg);
 }
 
 #else




More information about the Bf-blender-cvs mailing list