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);


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to