[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