[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33044] trunk/blender/source/blender/ editors: Bugfix #20382

Ton Roosendaal ton at blender.org
Fri Nov 12 18:35:52 CET 2010


Revision: 33044
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33044
Author:   ton
Date:     2010-11-12 18:35:51 +0100 (Fri, 12 Nov 2010)

Log Message:
-----------
Bugfix #20382

Fixed old annoyance in Search menu, with a load of object-mode 
operators showing up in editmode. 
It's much cleaner now, but it will take further work and 
investigation to have context & polls work satisfying for all cases.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/include/ED_screen.h
    trunk/blender/source/blender/editors/object/object_add.c
    trunk/blender/source/blender/editors/object/object_group.c
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/editors/object/object_select.c
    trunk/blender/source/blender/editors/screen/screen_ops.c

Modified: trunk/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_screen.h	2010-11-12 16:14:31 UTC (rev 33043)
+++ trunk/blender/source/blender/editors/include/ED_screen.h	2010-11-12 17:35:51 UTC (rev 33044)
@@ -125,6 +125,7 @@
 int		ED_operator_regionactive(struct bContext *C);
 
 int		ED_operator_scene_editable(struct bContext *C);
+int		ED_operator_objectmode(struct bContext *C);
 
 int		ED_operator_view3d_active(struct bContext *C);
 int		ED_operator_region_view3d_active(struct bContext *C);

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c	2010-11-12 16:14:31 UTC (rev 33043)
+++ trunk/blender/source/blender/editors/object/object_add.c	2010-11-12 17:35:51 UTC (rev 33044)
@@ -332,7 +332,7 @@
 	ot->invoke= ED_object_add_generic_invoke;
 	ot->exec= object_add_exec;
 	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -422,7 +422,7 @@
 	ot->invoke= WM_menu_invoke;
 	ot->exec= effector_add_exec;
 	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -473,7 +473,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_camera_add_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -557,7 +557,7 @@
 	/* api callbacks */
 	ot->invoke= object_metaball_add_invoke;
 	ot->exec= object_metaball_add_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -597,7 +597,7 @@
 	/* api callbacks */
 	ot->invoke= ED_object_add_generic_invoke;
 	ot->exec= object_add_text_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -652,7 +652,7 @@
 	/* api callbacks */
 	ot->invoke= ED_object_add_generic_invoke;
 	ot->exec= object_armature_add_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -712,7 +712,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= object_lamp_add_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -769,7 +769,7 @@
 	ot->invoke= WM_enum_search_invoke;
 	ot->exec= group_instance_add_exec;
 
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -835,7 +835,7 @@
 	/* api callbacks */
 	ot->invoke= WM_operator_confirm;
 	ot->exec= object_delete_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1027,7 +1027,7 @@
 	/* api callbacks */
 	ot->exec= object_duplicates_make_real_exec;
 	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1690,7 +1690,7 @@
 	
 	/* api callbacks */
 	ot->exec= duplicate_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1703,21 +1703,7 @@
 
 /* **************** add named object, for dragdrop ************* */
 
-/* contextual operator dupli */
 
-static int add_named_poll(bContext *C)
-{
-	if(!ED_operator_scene_editable(C)) {
-		return 0;
-	} else {
-		Object *ob= CTX_data_active_object(C);
-		if(ob && ob->mode != OB_MODE_OBJECT)
-			return 0;
-		else
-			return 1;
-	}
-}
-
 static int add_named_exec(bContext *C, wmOperator *op)
 {
 	Main *bmain= CTX_data_main(C);
@@ -1775,7 +1761,7 @@
 	
 	/* api callbacks */
 	ot->exec= add_named_exec;
-	ot->poll= add_named_poll;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/object/object_group.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_group.c	2010-11-12 16:14:31 UTC (rev 33043)
+++ trunk/blender/source/blender/editors/object/object_group.c	2010-11-12 17:35:51 UTC (rev 33044)
@@ -96,7 +96,7 @@
 	
 	/* api callbacks */
 	ot->exec= objects_add_active_exec;	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -143,7 +143,7 @@
 	
 	/* api callbacks */
 	ot->exec= objects_remove_active_exec;	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -177,7 +177,7 @@
 	
 	/* api callbacks */
 	ot->exec= group_objects_remove_exec;	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -214,7 +214,7 @@
 	
 	/* api callbacks */
 	ot->exec= group_create_exec;	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2010-11-12 16:14:31 UTC (rev 33043)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2010-11-12 17:35:51 UTC (rev 33044)
@@ -928,7 +928,7 @@
 	ot->invoke= WM_menu_invoke;
 	ot->exec= object_track_clear_exec;
 	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1033,7 +1033,7 @@
 	ot->invoke= WM_menu_invoke;
 	ot->exec= track_set_exec;
 	
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1143,7 +1143,7 @@
 	/* api callbacks */
 	ot->invoke= move_to_layer_invoke;
 	ot->exec= move_to_layer_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1346,7 +1346,7 @@
 
 	/* api callbacks */
 	ot->exec= make_links_data_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1850,7 +1850,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= make_local_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1902,7 +1902,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= make_single_user_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1949,7 +1949,7 @@
 	
 	/* api callbacks */
 	ot->invoke= drop_named_material_invoke;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/object/object_select.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_select.c	2010-11-12 16:14:31 UTC (rev 33043)
+++ trunk/blender/source/blender/editors/object/object_select.c	2010-11-12 17:35:51 UTC (rev 33044)
@@ -148,7 +148,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= object_select_by_type_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -330,7 +330,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= object_select_linked_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -618,7 +618,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= object_select_grouped_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -667,7 +667,7 @@
 	/* api callbacks */
 	/*ot->invoke = XXX - need a int grid popup*/
 	ot->exec= object_select_by_layer_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -705,7 +705,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_select_inverse_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -766,7 +766,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_select_all_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -815,7 +815,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_select_same_group_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -863,7 +863,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_select_mirror_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -920,7 +920,7 @@
 
 	/* api callbacks */
 	ot->exec= object_select_name_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -968,7 +968,7 @@
 	/* api callbacks */
 	/*ot->invoke= object_select_random_invoke XXX - need a number popup ;*/
 	ot->exec = object_select_random_exec;
-	ot->poll= ED_operator_scene_editable;
+	ot->poll= ED_operator_objectmode;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2010-11-12 16:14:31 UTC (rev 33043)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2010-11-12 17:35:51 UTC (rev 33044)
@@ -116,6 +116,24 @@
 	return 0;
 }
 
+int ED_operator_objectmode(bContext *C)
+{
+	Scene *scene= CTX_data_scene(C);
+	Object *obact= CTX_data_active_object(C);
+
+	if(scene==NULL || scene->id.lib)
+		return 0;

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list