diff options
author | Gaia Clary <gaia.clary@machinimatrix.org> | 2013-07-04 12:47:42 +0400 |
---|---|---|
committer | Gaia Clary <gaia.clary@machinimatrix.org> | 2013-07-04 12:47:42 +0400 |
commit | 5fc8393deea9d41ce09de3f09021d9bc6835812d (patch) | |
tree | dd9399e51f20e5ec1a57dc77a641acbba9ae8781 /source/blender/editors | |
parent | 32e674c2c91378d9e1875f936bfffa796d7178be (diff) |
Moved 'vgroups exist' check into operator poll functions of weight tools
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/object/object_vgroup.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c index 7e87068a7bb..909b70c8d3c 100644 --- a/source/blender/editors/object/object_vgroup.c +++ b/source/blender/editors/object/object_vgroup.c @@ -2909,6 +2909,17 @@ static int vertex_group_poll(bContext *C) { Object *ob = ED_object_context(C); ID *data = (ob) ? ob->data : NULL; + + return (ob && !ob->id.lib + && data && !data->lib + && OB_TYPE_SUPPORT_VGROUP(ob->type) + && BLI_countlist(&ob->defbase) > 0 ); +} + +static int vertex_group_can_add_poll(bContext *C) +{ + Object *ob = ED_object_context(C); + ID *data = (ob) ? ob->data : NULL; return (ob && !ob->id.lib && OB_TYPE_SUPPORT_VGROUP(ob->type) && data && !data->lib); } @@ -2916,9 +2927,21 @@ static int vertex_group_mesh_poll(bContext *C) { Object *ob = ED_object_context(C); ID *data = (ob) ? ob->data : NULL; + + return (ob && !ob->id.lib + && data && !data->lib + && ob->type == OB_MESH + && BLI_countlist(&ob->defbase) > 0 ); +} + +static int vertex_group_mesh_can_add_poll(bContext *C) +{ + Object *ob = ED_object_context(C); + ID *data = (ob) ? ob->data : NULL; return (ob && !ob->id.lib && ob->type == OB_MESH && data && !data->lib); } + static int UNUSED_FUNCTION(vertex_group_poll_edit) (bContext *C) { Object *ob = ED_object_context(C); @@ -3003,7 +3026,7 @@ void OBJECT_OT_vertex_group_add(wmOperatorType *ot) ot->description = "Add a new vertex group to the active object"; /* api callbacks */ - ot->poll = vertex_group_poll; + ot->poll = vertex_group_can_add_poll; ot->exec = vertex_group_add_exec; /* flags */ @@ -3820,7 +3843,7 @@ void OBJECT_OT_vertex_group_transfer_weight(wmOperatorType *ot) ot->description = "Transfer weight paint to active from selected mesh"; /* API callbacks.*/ - ot->poll = vertex_group_mesh_poll; + ot->poll = vertex_group_mesh_can_add_poll; ot->exec = vertex_group_transfer_weight_exec; /* Flags.*/ |