[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56435] trunk/blender/source/blender/ editors/mesh/editmesh_select.c: replace error reports with poll() function for editmesh select ungrouped

Campbell Barton ideasman42 at gmail.com
Wed May 1 08:07:26 CEST 2013


Revision: 56435
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56435
Author:   campbellbarton
Date:     2013-05-01 06:07:26 +0000 (Wed, 01 May 2013)
Log Message:
-----------
replace error reports with poll() function for editmesh select ungrouped

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_select.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_select.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_select.c	2013-05-01 05:59:58 UTC (rev 56434)
+++ trunk/blender/source/blender/editors/mesh/editmesh_select.c	2013-05-01 06:07:26 UTC (rev 56435)
@@ -3306,6 +3306,25 @@
 	RNA_def_boolean(ot->srna, "extend", false, "Extend", "Extend the selection");
 }
 
+static int edbm_select_ungrouped_poll(bContext *C)
+{
+	if (ED_operator_editmesh(C)) {
+		Object *obedit = CTX_data_edit_object(C);
+		BMEditMesh *em = BKE_editmesh_from_object(obedit);
+
+		if ((em->selectmode & SCE_SELECT_VERTEX) == 0) {
+			CTX_wm_operator_poll_msg_set(C, "Must be in vertex selection mode");
+		}
+		else if (obedit->defbase.first == NULL) {
+			CTX_wm_operator_poll_msg_set(C, "No weights/vertex groups on object");
+		}
+		else {
+			return true;
+		}
+	}
+	return false;
+}
+
 static int edbm_select_ungrouped_exec(bContext *C, wmOperator *op)
 {
 	Object *obedit = CTX_data_edit_object(C);
@@ -3313,16 +3332,6 @@
 	BMVert *eve;
 	BMIter iter;
 
-	if ((em->selectmode & SCE_SELECT_VERTEX) == 0) {
-		BKE_report(op->reports, RPT_ERROR, "Does not work out of vertex selection mode");
-		return OPERATOR_CANCELLED;
-	}
-
-	if (obedit->defbase.first == NULL) {
-		BKE_report(op->reports, RPT_ERROR, "No weights/vertex groups on object");
-		return OPERATOR_CANCELLED;
-	}
-
 	if (!RNA_boolean_get(op->ptr, "extend")) {
 		EDBM_flag_disable_all(em, BM_ELEM_SELECT);
 	}
@@ -3352,7 +3361,7 @@
 
 	/* api callbacks */
 	ot->exec = edbm_select_ungrouped_exec;
-	ot->poll = ED_operator_editmesh;
+	ot->poll = edbm_select_ungrouped_poll;
 
 	/* flags */
 	ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;




More information about the Bf-blender-cvs mailing list