[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28608] trunk/blender/source/blender/ editors/space_sequencer: Fix [#22256] bpy.ops.sequencer.delete.poll() not working

Matt Ebb matt at mke3.net
Thu May 6 09:19:56 CEST 2010


Revision: 28608
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28608
Author:   broken
Date:     2010-05-06 09:19:55 +0200 (Thu, 06 May 2010)

Log Message:
-----------
Fix [#22256] bpy.ops.sequencer.delete.poll() not working

Just about all sequencer operator poll functions were requiring an active 
sequence editor space type. This wasn't necessary for most of them, and prevented use 
from scripts, console, etc.

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_select.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2010-05-06 07:10:56 UTC (rev 28607)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2010-05-06 07:19:55 UTC (rev 28608)
@@ -1270,7 +1270,12 @@
 #endif
 
 /* Operator functions */
+int sequencer_edit_poll(bContext *C)
+{
+	return (seq_give_editing(CTX_data_scene(C), FALSE) != NULL);
+}
 
+
 /* snap operator*/
 static int sequencer_snap_exec(bContext *C, wmOperator *op)
 {
@@ -1279,8 +1284,6 @@
 	Editing *ed= seq_give_editing(scene, FALSE);
 	Sequence *seq;
 	int snap_frame;
-	
-	if(ed==NULL) return OPERATOR_CANCELLED;
 
 	snap_frame= RNA_int_get(op->ptr, "frame");
 
@@ -1354,8 +1357,7 @@
 	/* api callbacks */
 	ot->invoke= sequencer_snap_invoke;
 	ot->exec= sequencer_snap_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1371,9 +1373,6 @@
 	Sequence *seq;
 	int selected;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	selected= !RNA_boolean_get(op->ptr, "unselected");
 	
 	for(seq= ed->seqbasep->first; seq; seq= seq->next) {
@@ -1404,8 +1403,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_mute_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1422,9 +1420,6 @@
 	Sequence *seq;
 	int selected;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	selected= !RNA_boolean_get(op->ptr, "unselected");
 	
 	for(seq= ed->seqbasep->first; seq; seq= seq->next) {
@@ -1449,14 +1444,13 @@
 void SEQUENCER_OT_unmute(struct wmOperatorType *ot)
 {
 	/* identifiers */
-	ot->name= "UnMute Strips";
+	ot->name= "Un-Mute Strips";
 	ot->idname= "SEQUENCER_OT_unmute";
-	ot->description="UnMute unselected rather than selected strips";
+	ot->description="Un-Mute unselected rather than selected strips";
 	
 	/* api callbacks */
 	ot->exec= sequencer_unmute_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1472,9 +1466,6 @@
 	Editing *ed= seq_give_editing(scene, FALSE);
 	Sequence *seq;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	for(seq= ed->seqbasep->first; seq; seq= seq->next) {
 		if (seq->flag & SELECT) {
 			seq->flag |= SEQ_LOCK;
@@ -1495,8 +1486,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_lock_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1509,9 +1499,6 @@
 	Editing *ed= seq_give_editing(scene, FALSE);
 	Sequence *seq;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	for(seq= ed->seqbasep->first; seq; seq= seq->next) {
 		if (seq->flag & SELECT) {
 			seq->flag &= ~SEQ_LOCK;
@@ -1532,8 +1519,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_unlock_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1546,9 +1532,6 @@
 	Editing *ed= seq_give_editing(scene, FALSE);
 	Sequence *seq;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	for(seq= ed->seqbasep->first; seq; seq= seq->next) {
 		if(seq->flag & SELECT) {
 			update_changed_seq_and_deps(scene, seq, 0, 1);
@@ -1569,8 +1552,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_reload_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1581,9 +1563,6 @@
 {
 	Scene *scene= CTX_data_scene(C);
 	Editing *ed= seq_give_editing(scene, FALSE);
-	
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
 
 	free_imbuf_seq(scene, &ed->seqbase, FALSE);
 
@@ -1601,8 +1580,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_refresh_all_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1623,9 +1601,6 @@
 
 	ListBase newlist;
 	int changed;
-	
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
 
 	cut_frame= RNA_int_get(op->ptr, "frame");
 	cut_hard= RNA_enum_get(op->ptr, "type");
@@ -1678,7 +1653,8 @@
 	int cut_side, cut_frame;
 	
 	cut_frame= CFRA;
-	cut_side= mouse_frame_side(v2d, event->x - ar->winrct.xmin, cut_frame);
+	if (ED_operator_sequencer_active(C) && v2d)
+		cut_side= mouse_frame_side(v2d, event->x - ar->winrct.xmin, cut_frame);
 	
 	RNA_int_set(op->ptr, "frame", cut_frame);
 	RNA_enum_set(op->ptr, "side", cut_side);
@@ -1698,8 +1674,7 @@
 	/* api callbacks */
 	ot->invoke= sequencer_cut_invoke;
 	ot->exec= sequencer_cut_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1749,7 +1724,6 @@
 
 void SEQUENCER_OT_duplicate(wmOperatorType *ot)
 {
-
 	/* identifiers */
 	ot->name= "Duplicate";
 	ot->idname= "SEQUENCER_OT_duplicate";
@@ -1758,7 +1732,6 @@
 	/* api callbacks */
 	ot->invoke= sequencer_add_duplicate_invoke;
 	ot->exec= sequencer_add_duplicate_exec;
-
 	ot->poll= ED_operator_sequencer_active;
 	
 	/* flags */
@@ -1777,9 +1750,6 @@
 	MetaStack *ms;
 	int nothingSelected = TRUE;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	seq=active_seq_get(scene);
 	if (seq && seq->flag & SELECT) { /* avoid a loop since this is likely to be selected */
 		nothingSelected = FALSE;
@@ -1840,8 +1810,7 @@
 	/* api callbacks */
 	ot->invoke= WM_operator_confirm;
 	ot->exec= sequencer_delete_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1932,8 +1901,7 @@
 	/* api callbacks */
 	ot->invoke= WM_operator_props_popup;
 	ot->exec= sequencer_separate_images_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1952,9 +1920,6 @@
 	Sequence *last_seq= active_seq_get(scene);
 	MetaStack *ms;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	if(last_seq && last_seq->type==SEQ_META && last_seq->flag & SELECT) {
 		/* Enter Metastrip */
 		ms= MEM_mallocN(sizeof(MetaStack), "metastack");
@@ -2008,8 +1973,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_meta_toggle_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2026,9 +1990,6 @@
 	
 	int channel_max= 1;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	if(seqbase_isolated_sel_check(ed->seqbasep)==FALSE) {
 		BKE_report(op->reports, RPT_ERROR, "Please select all related strips");
 		return OPERATOR_CANCELLED;
@@ -2081,8 +2042,7 @@
 	/* api callbacks */
 	ot->invoke= WM_operator_confirm;
 	ot->exec= sequencer_meta_make_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2153,8 +2113,7 @@
 	/* api callbacks */
 	ot->invoke= WM_operator_confirm;
 	ot->exec= sequencer_meta_separate_exec;
-
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2186,7 +2145,6 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_view_all_exec;
-
 	ot->poll= ED_operator_sequencer_active;
 	
 	/* flags */
@@ -2253,7 +2211,6 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_view_all_preview_exec;
-
 	ot->poll= ED_operator_sequencer_active;
 	
 	/* flags */
@@ -2370,7 +2327,6 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_view_selected_exec;
-
 	ot->poll= ED_operator_sequencer_active;
 	
 	/* flags */
@@ -2456,7 +2412,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_next_edit_exec;
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2486,7 +2442,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_previous_edit_exec;
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2531,7 +2487,6 @@
 	Sequence *seq, *iseq;
 	int side= RNA_enum_get(op->ptr, "side");
 
-	if(ed==NULL) return OPERATOR_CANCELLED;
 	if(active_seq==NULL) return OPERATOR_CANCELLED;
 
 	seq = find_next_prev_sequence(scene, active_seq, side, -1);
@@ -2591,7 +2546,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_swap_exec;
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2641,7 +2596,7 @@
 	
 	/* api callbacks */
 	ot->exec= sequencer_rendersize_exec;
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2670,9 +2625,6 @@
 	Editing *ed= seq_give_editing(scene, FALSE);
 	Sequence *seq;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-
 	seq_free_clipboard();
 
 	if(seqbase_isolated_sel_check(ed->seqbasep)==FALSE) {
@@ -2700,7 +2652,7 @@
 
 	/* api callbacks */
 	ot->exec= sequencer_copy_exec;
-	ot->poll= ED_operator_sequencer_active;
+	ot->poll= sequencer_edit_poll;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h	2010-05-06 07:10:56 UTC (rev 28607)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h	2010-05-06 07:19:55 UTC (rev 28608)
@@ -67,6 +67,9 @@
 int seq_effect_find_selected(struct Scene *scene, struct Sequence *activeseq, int type, struct Sequence **selseq1, struct Sequence **selseq2, struct Sequence **selseq3, char **error_str);
 struct Sequence *alloc_sequence(struct ListBase *lb, int cfra, int machine);
 
+/* operator helpers */
+int sequencer_edit_poll(struct bContext *C);
+
 /* externs */
 extern EnumPropertyItem sequencer_prop_effect_types[];
 extern EnumPropertyItem prop_side_types[];

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c	2010-05-06 07:10:56 UTC (rev 28607)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c	2010-05-06 07:19:55 UTC (rev 28608)
@@ -222,9 +222,6 @@
 	Sequence *seq;
 	int desel = 0;
 
-	if(ed==NULL)
-		return OPERATOR_CANCELLED;
-

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list