[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29910] trunk/blender: sequencer re-assign inputs back

Campbell Barton ideasman42 at gmail.com
Sun Jul 4 00:25:23 CEST 2010


Revision: 29910
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29910
Author:   campbellbarton
Date:     2010-07-04 00:25:22 +0200 (Sun, 04 Jul 2010)

Log Message:
-----------
sequencer re-assign inputs back

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_sequencer.py
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
    trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===================================================================
--- trunk/blender/release/scripts/ui/space_sequencer.py	2010-07-03 21:13:08 UTC (rev 29909)
+++ trunk/blender/release/scripts/ui/space_sequencer.py	2010-07-03 22:25:22 UTC (rev 29910)
@@ -279,6 +279,7 @@
 
         layout.separator()
         layout.operator("sequencer.reload")
+        layout.operator("sequencer.reassign_inputs")
         layout.separator()
         layout.operator("sequencer.lock")
         layout.operator("sequencer.unlock")

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2010-07-03 21:13:08 UTC (rev 29909)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2010-07-03 22:25:22 UTC (rev 29910)
@@ -677,36 +677,6 @@
 	return 1;
 }
 
-void reassign_inputs_seq_effect(Scene *scene)
-{
-	Editing *ed= seq_give_editing(scene, FALSE);
-	Sequence *seq1, *seq2, *seq3, *last_seq = seq_active_get(scene);
-	char *error_msg;
-
-	if(last_seq==0 || !(last_seq->type & SEQ_EFFECT)) return;
-	if(ed==NULL) return;
-
-	if(!seq_effect_find_selected(scene, last_seq, last_seq->type, &seq1, &seq2, &seq3, &error_msg)) {
-		//BKE_report(op->reports, RPT_ERROR, error_msg); // XXX operatorify
-		return;
-	}
-	/* see reassigning would create a cycle */
-	if(	seq_is_predecessor(seq1, last_seq) ||
-		seq_is_predecessor(seq2, last_seq) ||
-		seq_is_predecessor(seq3, last_seq)
-	) {
-		//BKE_report(op->reports, RPT_ERROR, "Can't reassign inputs: no cycles allowed"); // XXX operatorify
-		   return;
-	}
-	
-	last_seq->seq1 = seq1;
-	last_seq->seq2 = seq2;
-	last_seq->seq3 = seq3;
-
-	update_changed_seq_and_deps(scene, last_seq, 1, 1);
-
-}
-
 static Sequence *del_seq_find_replace_recurs(Scene *scene, Sequence *seq)
 {
 	Sequence *seq1, *seq2, *seq3;
@@ -1458,6 +1428,67 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
+static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
+{
+	Scene *scene= CTX_data_scene(C);
+	Sequence *seq1, *seq2, *seq3, *last_seq = seq_active_get(scene);
+	char *error_msg;
+
+	if(!seq_effect_find_selected(scene, last_seq, last_seq->type, &seq1, &seq2, &seq3, &error_msg)) {
+		BKE_report(op->reports, RPT_ERROR, error_msg);
+		return OPERATOR_CANCELLED;
+	}
+	/* see reassigning would create a cycle */
+	if(	seq_is_predecessor(seq1, last_seq) ||
+		seq_is_predecessor(seq2, last_seq) ||
+		seq_is_predecessor(seq3, last_seq)
+	) {
+		BKE_report(op->reports, RPT_ERROR, "Can't reassign inputs: no cycles allowed");
+		return OPERATOR_CANCELLED;
+	}
+
+	last_seq->seq1 = seq1;
+	last_seq->seq2 = seq2;
+	last_seq->seq3 = seq3;
+
+	update_changed_seq_and_deps(scene, last_seq, 1, 1);
+
+	WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+	return OPERATOR_FINISHED;
+}
+
+int sequencer_effect_poll(bContext *C)
+{
+	Scene *scene= CTX_data_scene(C);
+	Editing *ed= seq_give_editing(scene, FALSE);
+
+	if(ed) {
+		Sequence *last_seq= seq_active_get(scene);
+		if(last_seq && (last_seq->type & SEQ_EFFECT)) {
+			return 1;
+		}
+	}
+
+	return 0;
+}
+
+void SEQUENCER_OT_reassign_inputs(struct wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Reassign Inputs";
+	ot->idname= "SEQUENCER_OT_reassign_inputs";
+	ot->description="Reassign the inputs for the effects strip";
+
+	/* api callbacks */
+	ot->exec= sequencer_reassign_inputs_exec;
+	ot->poll= sequencer_effect_poll;
+
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
 /* cut operator */
 static EnumPropertyItem prop_cut_types[] = {
 	{SEQ_CUT_SOFT, "SOFT", 0, "Soft", ""},

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h	2010-07-03 21:13:08 UTC (rev 29909)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h	2010-07-03 22:25:22 UTC (rev 29910)
@@ -85,6 +85,7 @@
 void SEQUENCER_OT_unlock(struct wmOperatorType *ot);
 void SEQUENCER_OT_reload(struct wmOperatorType *ot);
 void SEQUENCER_OT_refresh_all(struct wmOperatorType *ot);
+void SEQUENCER_OT_reassign_inputs(struct wmOperatorType *ot);
 void SEQUENCER_OT_duplicate(struct wmOperatorType *ot);
 void SEQUENCER_OT_delete(struct wmOperatorType *ot);
 void SEQUENCER_OT_images_separate(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c	2010-07-03 21:13:08 UTC (rev 29909)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c	2010-07-03 22:25:22 UTC (rev 29910)
@@ -63,6 +63,7 @@
 	WM_operatortype_append(SEQUENCER_OT_unlock);
 	WM_operatortype_append(SEQUENCER_OT_reload);
 	WM_operatortype_append(SEQUENCER_OT_refresh_all);
+	WM_operatortype_append(SEQUENCER_OT_reassign_inputs);
 	WM_operatortype_append(SEQUENCER_OT_duplicate);
 	WM_operatortype_append(SEQUENCER_OT_delete);
 	WM_operatortype_append(SEQUENCER_OT_images_separate);
@@ -134,6 +135,7 @@
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_lock", LKEY, KM_PRESS, KM_SHIFT, 0);
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_unlock", LKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0);
 
+	WM_keymap_add_item(keymap, "SEQUENCER_OT_reassign_inputs", RKEY, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
 
 	WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);





More information about the Bf-blender-cvs mailing list