Revision: 50148
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50148
Author:   nazgul
Date:     2012-08-23 09:04:30 +0000 (Thu, 23 Aug 2012)
Log Message:
-----------
Sequencer: move up/down operators for modifiers

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
    trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
    trunk/blender/source/blender/editors/space_sequencer/sequencer_modifier.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py      
2012-08-23 08:54:06 UTC (rev 50147)
+++ trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py      
2012-08-23 09:04:30 UTC (rev 50148)
@@ -899,12 +899,21 @@
 
             row = box.row()
             row.prop(mod, "show_expanded", text="", emboss=False)
-            row.prop(mod, "name")
+            row.prop(mod, "name", text="")
 
             row.prop(mod, "mute", text="")
-            props = row.operator("sequencer.strip_modifier_remove", text="", 
icon='X')
+
+            sub = row.row(align=True)
+            props = sub.operator("sequencer.strip_modifier_move", text="", 
icon='TRIA_UP')
             props.name = mod.name
+            props.direction = 'UP'
+            props = sub.operator("sequencer.strip_modifier_move", text="", 
icon='TRIA_DOWN')
+            props.name = mod.name
+            props.direction = 'DOWN'
 
+            props = row.operator("sequencer.strip_modifier_remove", text="", 
icon='X', emboss=False)
+            props.name = mod.name
+
             if mod.show_expanded:
                 row = box.row()
                 row.prop(mod, "input_mask_type", expand=True)

Modified: 
trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h     
2012-08-23 08:54:06 UTC (rev 50147)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h     
2012-08-23 09:04:30 UTC (rev 50148)
@@ -179,6 +179,7 @@
 /* sequencer_modifiers.c */
 void SEQUENCER_OT_strip_modifier_add(struct wmOperatorType *ot);
 void SEQUENCER_OT_strip_modifier_remove(struct wmOperatorType *ot);
+void SEQUENCER_OT_strip_modifier_move(struct wmOperatorType *ot);
 
 #endif /* __SEQUENCER_INTERN_H__ */
 

Modified: 
trunk/blender/source/blender/editors/space_sequencer/sequencer_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_modifier.c   
2012-08-23 08:54:06 UTC (rev 50147)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_modifier.c   
2012-08-23 09:04:30 UTC (rev 50148)
@@ -154,3 +154,69 @@
        /* properties */
        RNA_def_string(ot->srna, "name", "Name", MAX_NAME, "Name", "Name of 
modifier to remove");
 }
+
+/*********************** Move operator *************************/
+
+enum {
+       SEQ_MODIFIER_MOVE_UP = 0,
+       SEQ_MODIFIER_MOVE_DOWN
+};
+
+static int strip_modifier_move_exec(bContext *C, wmOperator *op)
+{
+       Scene *scene = CTX_data_scene(C);
+       Sequence *seq = BKE_sequencer_active_get(scene);
+       char name[MAX_NAME];
+       int direction;
+       SequenceModifierData *smd;
+
+       RNA_string_get(op->ptr, "name", name);
+       direction = RNA_enum_get(op->ptr, "direction");
+
+       smd = BKE_sequence_modifier_find_by_name(seq, name);
+       if (!smd)
+               return OPERATOR_CANCELLED;
+
+       if (direction == SEQ_MODIFIER_MOVE_UP) {
+               if (smd->prev) {
+                       BLI_remlink(&seq->modifiers, smd);
+                       BLI_insertlink(&seq->modifiers, smd->prev->prev, smd);
+               }
+       }
+       else if (direction == SEQ_MODIFIER_MOVE_DOWN) {
+               if (smd->next) {
+                       BLI_remlink(&seq->modifiers, smd);
+                       BLI_insertlink(&seq->modifiers, smd->next, smd);
+               }
+       }
+
+       BKE_sequence_invalidate_cache(scene, seq);
+       WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
+
+       return OPERATOR_FINISHED;
+}
+
+void SEQUENCER_OT_strip_modifier_move(wmOperatorType *ot)
+{
+       static EnumPropertyItem direction_items[] = {
+               {SEQ_MODIFIER_MOVE_UP, "UP", 0, "Up", "Move modifier up in the 
stack"},
+               {SEQ_MODIFIER_MOVE_DOWN, "DOWN", 0, "Down", "Move modifier down 
in the stack"},
+               {0, NULL, 0, NULL, NULL}
+       };
+
+       /* identifiers */
+       ot->name = "Move Strip Modifier";
+       ot->idname = "SEQUENCER_OT_strip_modifier_move";
+       ot->description = "Move modifier up and down in the stack";
+
+       /* api callbacks */
+       ot->exec = strip_modifier_move_exec;
+       ot->poll = strip_modifier_active_poll;
+
+       /* flags */
+       ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+       /* properties */
+       RNA_def_string(ot->srna, "name", "Name", MAX_NAME, "Name", "Name of 
modifier to remove");
+       RNA_def_enum(ot->srna, "direction", direction_items, 
SEQ_MODIFIER_MOVE_UP, "Type", "");
+}

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c        
2012-08-23 08:54:06 UTC (rev 50147)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c        
2012-08-23 09:04:30 UTC (rev 50148)
@@ -117,6 +117,7 @@
        /* sequencer_modifiers.c */
        WM_operatortype_append(SEQUENCER_OT_strip_modifier_add);
        WM_operatortype_append(SEQUENCER_OT_strip_modifier_remove);
+       WM_operatortype_append(SEQUENCER_OT_strip_modifier_move);
 }
 
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to