Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaia Clary <gaia.clary@machinimatrix.org>2013-07-04 12:47:42 +0400
committerGaia Clary <gaia.clary@machinimatrix.org>2013-07-04 12:47:42 +0400
commit5fc8393deea9d41ce09de3f09021d9bc6835812d (patch)
treedd9399e51f20e5ec1a57dc77a641acbba9ae8781 /source/blender/editors
parent32e674c2c91378d9e1875f936bfffa796d7178be (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.c27
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.*/