[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20770] branches/blender2.5/blender: patch from Xavier Thomas, add back the sequencer snap operator
Campbell Barton
ideasman42 at gmail.com
Tue Jun 9 23:30:00 CEST 2009
Revision: 20770
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20770
Author: campbellbarton
Date: 2009-06-09 23:29:59 +0200 (Tue, 09 Jun 2009)
Log Message:
-----------
patch from Xavier Thomas, add back the sequencer snap operator
Modified Paths:
--------------
branches/blender2.5/blender/release/ui/space_sequencer.py
branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_edit.c
branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_intern.h
branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_ops.c
Modified: branches/blender2.5/blender/release/ui/space_sequencer.py
===================================================================
--- branches/blender2.5/blender/release/ui/space_sequencer.py 2009-06-09 20:03:52 UTC (rev 20769)
+++ branches/blender2.5/blender/release/ui/space_sequencer.py 2009-06-09 21:29:59 UTC (rev 20770)
@@ -239,8 +239,8 @@
layout.item_enumO("SEQUENCER_OT_mute", property="type", value='UNSELECTED', text="Mute Deselected Strips")
+ layout.itemO("SEQUENCER_OT_snap")
-
# Panels
class SequencerButtonsPanel(bpy.types.Panel):
__space_type__ = "SEQUENCE_EDITOR"
Modified: branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_edit.c 2009-06-09 20:03:52 UTC (rev 20769)
+++ branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_edit.c 2009-06-09 21:29:59 UTC (rev 20770)
@@ -1388,14 +1388,21 @@
}
#endif
-void seq_snap(Scene *scene, short event)
+/* Operator functions */
+
+/* snap operator*/
+static int sequencer_snap_exec(bContext *C, wmOperator *op)
{
+ Scene *scene= CTX_data_scene(C);
+
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq;
-
+ int snap_frame;
- if(ed==NULL) return;
+ if(ed==NULL) return OPERATOR_CANCELLED;
+ snap_frame= RNA_int_get(op->ptr, "frame");
+
/* problem: contents of meta's are all shifted to the same position... */
/* also check metas */
@@ -1403,12 +1410,12 @@
if (seq->flag & SELECT && !(seq->depth==0 && seq->flag & SEQ_LOCK) &&
seq_tx_test(seq)) {
if((seq->flag & (SEQ_LEFTSEL+SEQ_RIGHTSEL))==0) {
- seq->start= CFRA-seq->startofs+seq->startstill;
+ seq->start= snap_frame-seq->startofs+seq->startstill;
} else {
if(seq->flag & SEQ_LEFTSEL) {
- seq_tx_set_final_left(seq, CFRA);
+ seq_tx_set_final_left(seq, snap_frame);
} else { /* SEQ_RIGHTSEL */
- seq_tx_set_final_right(seq, CFRA);
+ seq_tx_set_final_right(seq, snap_frame);
}
seq_tx_handle_xlimits(seq, seq->flag & SEQ_LEFTSEL, seq->flag & SEQ_RIGHTSEL);
}
@@ -1438,21 +1445,43 @@
/* as last: */
sort_seq(scene);
+
+ ED_area_tag_redraw(CTX_wm_area(C));
+
+ return OPERATOR_FINISHED;
+}
+static int sequencer_snap_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ Scene *scene = CTX_data_scene(C);
+
+ int snap_frame;
+
+ snap_frame= CFRA;
+
+ RNA_int_set(op->ptr, "frame", snap_frame);
+ return sequencer_snap_exec(C, op);
}
-void seq_snap_menu(Scene *scene)
+void SEQUENCER_OT_snap(struct wmOperatorType *ot)
{
- short event;
+ /* identifiers */
+ ot->name= "Snap strips";
+ ot->idname= "SEQUENCER_OT_snap";
+
+ /* api callbacks */
+ ot->invoke= sequencer_snap_invoke;
+ ot->exec= sequencer_snap_exec;
+
+ ot->poll= ED_operator_sequencer_active;
- event= pupmenu("Snap %t|To Current Frame%x1");
- if(event < 1) return;
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- seq_snap(scene, event);
+ RNA_def_int(ot->srna, "frame", 0, INT_MIN, INT_MAX, "Frame", "Frame where selected strips will snaped", INT_MIN, INT_MAX);
}
-/* Operator functions */
-
+/* mute operator */
static int sequencer_mute_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Modified: branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_intern.h 2009-06-09 20:03:52 UTC (rev 20769)
+++ branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_intern.h 2009-06-09 21:29:59 UTC (rev 20770)
@@ -89,6 +89,7 @@
void SEQUENCER_OT_meta_toggle(struct wmOperatorType *ot);
void SEQUENCER_OT_meta_make(struct wmOperatorType *ot);
void SEQUENCER_OT_meta_separate(struct wmOperatorType *ot);
+void SEQUENCER_OT_snap(struct wmOperatorType *ot);
void SEQUENCER_OT_view_all(struct wmOperatorType *ot);
void SEQUENCER_OT_view_selected(struct wmOperatorType *ot);
Modified: branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_ops.c 2009-06-09 20:03:52 UTC (rev 20769)
+++ branches/blender2.5/blender/source/blender/editors/space_sequencer/sequencer_ops.c 2009-06-09 21:29:59 UTC (rev 20770)
@@ -77,6 +77,7 @@
WM_operatortype_append(SEQUENCER_OT_meta_toggle);
WM_operatortype_append(SEQUENCER_OT_meta_make);
WM_operatortype_append(SEQUENCER_OT_meta_separate);
+ WM_operatortype_append(SEQUENCER_OT_snap);
WM_operatortype_append(SEQUENCER_OT_view_all);
WM_operatortype_append(SEQUENCER_OT_view_selected);
More information about the Bf-blender-cvs
mailing list