[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57812] trunk/blender/source/blender/ editors/object/object_vgroup.c: Added checks to Vertex Groups panel to respect locked Vertex Groups

Gaia Clary gaia.clary at machinimatrix.org
Thu Jun 27 08:33:01 CEST 2013


Revision: 57812
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57812
Author:   gaiaclary
Date:     2013-06-27 06:33:01 +0000 (Thu, 27 Jun 2013)
Log Message:
-----------
Added checks to Vertex Groups panel to respect locked Vertex Groups

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_vgroup.c

Modified: trunk/blender/source/blender/editors/object/object_vgroup.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_vgroup.c	2013-06-27 06:21:10 UTC (rev 57811)
+++ trunk/blender/source/blender/editors/object/object_vgroup.c	2013-06-27 06:33:01 UTC (rev 57812)
@@ -2972,6 +2972,29 @@
 	        vgroup_object_in_wpaint_vert_select(ob));
 }
 
+/* editmode _or_ weight paint vertex sel and active group unlocked */
+static int vertex_group_vert_select_unlocked_poll(bContext *C)
+{
+	Object *ob = ED_object_context(C);
+	ID *data = (ob) ? ob->data : NULL;
+
+	if (!(ob && !ob->id.lib && data && !data->lib))
+		return 0;
+
+	if (!(vgroup_object_in_edit_mode(ob) ||
+		vgroup_object_in_wpaint_vert_select(ob))) {
+		return 0;
+	}
+
+	if (ob->actdef != -1) {
+		bDeformGroup *dg = BLI_findlink(&ob->defbase, ob->actdef - 1);
+		if (dg) {
+			return !(dg->flag & DG_LOCK_WEIGHT);
+		}
+	}
+	return 0;
+}
+
 static int vertex_group_vert_select_mesh_poll(bContext *C)
 {
 	Object *ob = ED_object_context(C);
@@ -3075,7 +3098,7 @@
 	ot->description = "Assign the selected vertices to the current (or a new) vertex group";
 	
 	/* api callbacks */
-	ot->poll = vertex_group_vert_select_poll;
+	ot->poll = vertex_group_vert_select_unlocked_poll;
 	ot->exec = vertex_group_assign_exec;
 
 	/* flags */
@@ -3123,7 +3146,7 @@
 	ot->description = "Remove the selected vertices from active or all vertex group(s)";
 
 	/* api callbacks */
-	ot->poll = vertex_group_vert_select_poll;
+	ot->poll = vertex_group_vert_select_unlocked_poll;
 	ot->exec = vertex_group_remove_from_exec;
 
 	/* flags */




More information about the Bf-blender-cvs mailing list