[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25121] trunk/blender/source/blender/ editors: Fix for [#20203] Linked objects - A few bugs

Matt Ebb matt at mke3.net
Fri Dec 4 07:33:02 CET 2009


Revision: 25121
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25121
Author:   broken
Date:     2009-12-04 07:33:01 +0100 (Fri, 04 Dec 2009)

Log Message:
-----------
Fix for [#20203] Linked objects - A few bugs

Did a lot of cleaning Object operator poll functions to check if the object's linked 
or not. For this, added the function ED_operator_object_active_editable() as 
opposed to ED_operator_object_active()

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_constraint.c
    trunk/blender/source/blender/editors/object/object_edit.c
    trunk/blender/source/blender/editors/object/object_modifier.c
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/editors/object/object_transform.c
    trunk/blender/source/blender/editors/physics/particle_object.c
    trunk/blender/source/blender/editors/physics/physics_fluid.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	2009-12-04 05:05:50 UTC (rev 25120)
+++ trunk/blender/source/blender/editors/include/ED_screen.h	2009-12-04 06:33:01 UTC (rev 25121)
@@ -132,6 +132,7 @@
 int		ED_operator_logic_active(struct bContext *C);
 
 int		ED_operator_object_active(struct bContext *C);
+int		ED_operator_object_active_editable(struct bContext *C);
 int		ED_operator_editmesh(struct bContext *C);
 int		ED_operator_editarmature(struct bContext *C);
 int		ED_operator_editcurve(struct bContext *C);

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c	2009-12-04 05:05:50 UTC (rev 25120)
+++ trunk/blender/source/blender/editors/object/object_add.c	2009-12-04 06:33:01 UTC (rev 25121)
@@ -999,7 +999,7 @@
 	Object *obact= CTX_data_active_object(C);
 	Scene *scene= CTX_data_scene(C);
 
-	return (!scene->id.lib && obact && scene->obedit != obact && (obact->flag & SELECT));
+	return (!scene->id.lib && obact && scene->obedit != obact && (obact->flag & SELECT) && !(obact->id.lib));
 }
 
 static int convert_exec(bContext *C, wmOperator *op)
@@ -1510,7 +1510,7 @@
 {
 	Object *ob= CTX_data_active_object(C);
 	
-	if (!ob) return 0;
+	if (!ob || ob->id.lib) return 0;
 	
 	if (ELEM4(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_ARMATURE))
 		return ED_operator_screenactive(C);
@@ -1563,7 +1563,7 @@
 {
 	Object *ob= CTX_data_active_object(C);
 	
-	if (!ob) return 0;
+	if (!ob || ob->id.lib) return 0;
 	
 	/* only meshes supported at the moment */
 	if (ob->type == OB_MESH)

Modified: trunk/blender/source/blender/editors/object/object_constraint.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_constraint.c	2009-12-04 05:05:50 UTC (rev 25120)
+++ trunk/blender/source/blender/editors/object/object_constraint.c	2009-12-04 06:33:01 UTC (rev 25121)
@@ -885,7 +885,7 @@
 	
 	/* callbacks */
 	ot->exec= object_constraints_clear_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 }
 
 /************************ add constraint operators *********************/
@@ -1212,7 +1212,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= object_constraint_add_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1231,7 +1231,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= object_constraint_add_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/object/object_edit.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_edit.c	2009-12-04 05:05:50 UTC (rev 25120)
+++ trunk/blender/source/blender/editors/object/object_edit.c	2009-12-04 06:33:01 UTC (rev 25121)
@@ -553,7 +553,7 @@
 	
 	/* api callbacks */
 	ot->exec= posemode_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flag */
 	ot->flag= OPTYPE_REGISTER;
@@ -1651,6 +1651,7 @@
 	ot->idname= "OBJECT_OT_shade_flat";
 	
 	/* api callbacks */
+	ot->poll= ED_operator_object_active_editable;
 	ot->exec= shade_smooth_exec;
 
 	/* flags */
@@ -1664,8 +1665,9 @@
 	ot->idname= "OBJECT_OT_shade_smooth";
 	
 	/* api callbacks */
+	ot->poll= ED_operator_object_active_editable;
 	ot->exec= shade_smooth_exec;
-
+	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
@@ -1958,7 +1960,7 @@
 	/* api callbacks */
 	ot->exec= object_mode_set_exec;
 	
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2013,6 +2015,7 @@
 
 	/* api callbacks */
 	ot->exec= game_property_new;
+	ot->poll= ED_operator_object_active_editable;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2049,6 +2052,7 @@
 
 	/* api callbacks */
 	ot->exec= game_property_remove;
+	ot->poll= ED_operator_object_active_editable;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c	2009-12-04 05:05:50 UTC (rev 25120)
+++ trunk/blender/source/blender/editors/object/object_modifier.c	2009-12-04 06:33:01 UTC (rev 25121)
@@ -542,7 +542,7 @@
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
 	ot->exec= modifier_add_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -574,7 +574,6 @@
 	ot->name= "Remove Modifier";
 	ot->description= "Remove a modifier from the active object.";
 	ot->idname= "OBJECT_OT_modifier_remove";
-	ot->poll= ED_operator_object_active;
 
 	ot->exec= modifier_remove_exec;
 	ot->poll= modifier_poll;
@@ -605,7 +604,6 @@
 	ot->name= "Move Up Modifier";
 	ot->description= "Move modifier up in the stack.";
 	ot->idname= "OBJECT_OT_modifier_move_up";
-	ot->poll= ED_operator_object_active;
 
 	ot->exec= modifier_move_up_exec;
 	ot->poll= modifier_poll;
@@ -636,7 +634,6 @@
 	ot->name= "Move Down Modifier";
 	ot->description= "Move modifier down in the stack.";
 	ot->idname= "OBJECT_OT_modifier_move_down";
-	ot->poll= ED_operator_object_active;
 
 	ot->exec= modifier_move_down_exec;
 	ot->poll= modifier_poll;
@@ -674,7 +671,6 @@
 	ot->name= "Apply Modifier";
 	ot->description= "Apply modifier and remove from the stack.";
 	ot->idname= "OBJECT_OT_modifier_apply";
-	ot->poll= ED_operator_object_active;
 
 	//ot->invoke= WM_menu_invoke;
 	ot->exec= modifier_apply_exec;
@@ -709,7 +705,6 @@
 	ot->name= "Convert Modifier";
 	ot->description= "Convert particles to a mesh object.";
 	ot->idname= "OBJECT_OT_modifier_convert";
-	ot->poll= ED_operator_object_active;
 
 	ot->exec= modifier_convert_exec;
 	ot->poll= modifier_poll;
@@ -740,7 +735,6 @@
 	ot->name= "Copy Modifier";
 	ot->description= "Duplicate modifier at the same position in the stack.";
 	ot->idname= "OBJECT_OT_modifier_copy";
-	ot->poll= ED_operator_object_active;
 
 	ot->exec= modifier_copy_exec;
 	ot->poll= modifier_poll;
@@ -769,7 +763,7 @@
 {
 	ot->name= "Delete Higher Levels";
 	ot->idname= "OBJECT_OT_multires_higher_levels_delete";
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 
 	ot->exec= multires_higher_levels_delete_exec;
 	

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2009-12-04 05:05:50 UTC (rev 25120)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2009-12-04 06:33:01 UTC (rev 25121)
@@ -475,7 +475,7 @@
 	ot->invoke= WM_menu_invoke;
 	ot->exec= parent_clear_exec;
 	
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -733,7 +733,7 @@
 	ot->invoke= parent_set_invoke;
 	ot->exec= parent_set_exec;
 	
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -788,7 +788,7 @@
 	/* api callbacks */
 	ot->invoke= WM_operator_confirm;
 	ot->exec= parent_noinv_set_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/object/object_transform.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_transform.c	2009-12-04 05:05:50 UTC (rev 25120)
+++ trunk/blender/source/blender/editors/object/object_transform.c	2009-12-04 06:33:01 UTC (rev 25121)
@@ -119,7 +119,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_location_clear_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -255,7 +255,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_rotation_clear_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -313,7 +313,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_scale_clear_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -357,7 +357,7 @@
 	
 	/* api callbacks */
 	ot->exec= object_origin_clear_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -579,7 +579,7 @@
 	
 	/* api callbacks */
 	ot->exec= visual_transform_apply_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -599,7 +599,7 @@
 	
 	/* api callbacks */
 	ot->exec= location_apply_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -619,7 +619,7 @@
 	
 	/* api callbacks */
 	ot->exec= scale_apply_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -639,7 +639,7 @@
 	
 	/* api callbacks */
 	ot->exec= rotation_apply_exec;
-	ot->poll= ED_operator_object_active;
+	ot->poll= ED_operator_object_active_editable;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;

Modified: trunk/blender/source/blender/editors/physics/particle_object.c
===================================================================
--- trunk/blender/source/blender/editors/physics/particle_object.c	2009-12-04 05:05:50 UTC (rev 25120)
+++ trunk/blender/source/blender/editors/physics/particle_object.c	2009-12-04 06:33:01 UTC (rev 25121)
@@ -56,6 +56,7 @@
 #include "WM_types.h"
 
 #include "ED_particle.h"
+#include "ED_screen.h"
 
 #include "physics_intern.h"
 
@@ -83,8 +84,9 @@

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list