[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25398] trunk/blender/source/blender/ editors/space_sequencer: * made seqence swap into 1 operator with left/ right enum option
Campbell Barton
ideasman42 at gmail.com
Tue Dec 15 11:04:56 CET 2009
Revision: 25398
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25398
Author: campbellbarton
Date: 2009-12-15 11:04:54 +0100 (Tue, 15 Dec 2009)
Log Message:
-----------
* made seqence swap into 1 operator with left/right enum option
* allow sequence swapping even when the strip has an effect
* only recalc the effect when its needed
Modified Paths:
--------------
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/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c 2009-12-15 09:39:46 UTC (rev 25397)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c 2009-12-15 10:04:54 UTC (rev 25398)
@@ -125,13 +125,19 @@
/* mute operator */
- EnumPropertyItem prop_side_types[] = {
+EnumPropertyItem prop_side_types[] = {
{SEQ_SIDE_LEFT, "LEFT", 0, "Left", ""},
{SEQ_SIDE_RIGHT, "RIGHT", 0, "Right", ""},
{SEQ_SIDE_BOTH, "BOTH", 0, "Both", ""},
{0, NULL, 0, NULL, NULL}
};
+EnumPropertyItem prop_side_lr_types[] = {
+ {SEQ_SIDE_LEFT, "LEFT", 0, "Left", ""},
+ {SEQ_SIDE_RIGHT, "RIGHT", 0, "Right", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
typedef struct TransSeq {
int start, machine;
int startstill, endstill;
@@ -2614,12 +2620,13 @@
}
-static int sequencer_swap_internal_exec(bContext *C, int side)
+static int sequencer_swap_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *active_seq = active_seq_get(scene);
Sequence *seq, *iseq;
+ int side= RNA_enum_get(op->ptr, "side");
if(ed==NULL) return OPERATOR_CANCELLED;
if(active_seq==NULL) return OPERATOR_CANCELLED;
@@ -2634,11 +2641,6 @@
if ((active_seq->type!=SEQ_COLOR) && (active_seq->effectdata || active_seq->seq1 || active_seq->seq2 || active_seq->seq3))
return OPERATOR_CANCELLED;
- /* disallow if parent strip (effect strip) is attached */
- if ( sequence_find_parent(scene, active_seq)) {
- return OPERATOR_CANCELLED;
- }
-
switch (side) {
case SEQ_SIDE_LEFT:
swap_sequence(seq, active_seq);
@@ -2650,9 +2652,8 @@
// XXX - should be a generic function
for(iseq= scene->ed->seqbasep->first; iseq; iseq= iseq->next) {
- //if((iseq->type & SEQ_EFFECT) && ELEM6(iseq, seq->seq1, seq->seq2, seq->seq3, active_seq->seq1, active_seq->seq2, active_seq->seq3))
- if(iseq->type & SEQ_EFFECT)
- calc_sequence(iseq);
+ if((iseq->type & SEQ_EFFECT) && (seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq)))
+ calc_sequence(iseq);
}
WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
@@ -2663,48 +2664,22 @@
return OPERATOR_CANCELLED;
}
-static int sequencer_swap_right_exec(bContext *C, wmOperator *op)
+void SEQUENCER_OT_swap(wmOperatorType *ot)
{
- return sequencer_swap_internal_exec(C, SEQ_SIDE_RIGHT);
-}
-
-void SEQUENCER_OT_swap_right(wmOperatorType *ot)
-{
/* identifiers */
- ot->name= "Swap Strip Right";
- ot->idname= "SEQUENCER_OT_swap_right";
- ot->description="Swap active strip with strip to the right.";
-
- /* api callbacks */
- ot->exec= sequencer_swap_right_exec;
- ot->poll= ED_operator_sequencer_active;
-
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-
- /* properties */
-}
-
-static int sequencer_swap_left_exec(bContext *C, wmOperator *op)
-{
- return sequencer_swap_internal_exec(C, SEQ_SIDE_LEFT);
-}
-
-void SEQUENCER_OT_swap_left(wmOperatorType *ot)
-{
- /* identifiers */
ot->name= "Swap Strip Left";
- ot->idname= "SEQUENCER_OT_swap_left";
+ ot->idname= "SEQUENCER_OT_swap";
ot->description="Swap active strip with strip to the left.";
/* api callbacks */
- ot->exec= sequencer_swap_left_exec;
+ ot->exec= sequencer_swap_exec;
ot->poll= ED_operator_sequencer_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
+ RNA_def_enum(ot->srna, "side", prop_side_lr_types, SEQ_SIDE_RIGHT, "Side", "Side of the strip to swap");
}
static int sequencer_rendersize_exec(bContext *C, wmOperator *op)
Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h 2009-12-15 09:39:46 UTC (rev 25397)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h 2009-12-15 10:04:54 UTC (rev 25398)
@@ -91,8 +91,7 @@
void SEQUENCER_OT_snap(struct wmOperatorType *ot);
void SEQUENCER_OT_previous_edit(struct wmOperatorType *ot);
void SEQUENCER_OT_next_edit(struct wmOperatorType *ot);
-void SEQUENCER_OT_swap_right(struct wmOperatorType *ot);
-void SEQUENCER_OT_swap_left(struct wmOperatorType *ot);
+void SEQUENCER_OT_swap(struct wmOperatorType *ot);
void SEQUENCER_OT_rendersize(struct wmOperatorType *ot);
void SEQUENCER_OT_view_toggle(struct wmOperatorType *ot);
Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c 2009-12-15 09:39:46 UTC (rev 25397)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c 2009-12-15 10:04:54 UTC (rev 25398)
@@ -79,8 +79,7 @@
WM_operatortype_append(SEQUENCER_OT_snap);
WM_operatortype_append(SEQUENCER_OT_next_edit);
WM_operatortype_append(SEQUENCER_OT_previous_edit);
- WM_operatortype_append(SEQUENCER_OT_swap_right);
- WM_operatortype_append(SEQUENCER_OT_swap_left);
+ WM_operatortype_append(SEQUENCER_OT_swap);
WM_operatortype_append(SEQUENCER_OT_rendersize);
WM_operatortype_append(SEQUENCER_OT_view_all);
@@ -157,8 +156,8 @@
WM_keymap_add_item(keymap, "SEQUENCER_OT_next_edit", PAGEUPKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_previous_edit", PAGEDOWNKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_swap_left", LEFTARROWKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_swap_right", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_LEFT);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_RIGHT);
WM_keymap_add_item(keymap, "SEQUENCER_OT_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
More information about the Bf-blender-cvs
mailing list