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
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-05-01 10:07:26 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-05-01 10:07:26 +0400
commit586a97166fe014cbb6012dd19a05533bd15771e5 (patch)
treedbe7839169b479454b64f698f66b41e68d34a97a /source
parent2cda8a9efbd15b1134c2594a15c2c42e9be71b59 (diff)
replace error reports with poll() function for editmesh select ungrouped
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/mesh/editmesh_select.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/source/blender/editors/mesh/editmesh_select.c b/source/blender/editors/mesh/editmesh_select.c
index 956d7cf1112..80ef8894971 100644
--- a/source/blender/editors/mesh/editmesh_select.c
+++ b/source/blender/editors/mesh/editmesh_select.c
@@ -3306,6 +3306,25 @@ void MESH_OT_select_random(wmOperatorType *ot)
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 @@ static int edbm_select_ungrouped_exec(bContext *C, wmOperator *op)
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 @@ void MESH_OT_select_ungrouped(wmOperatorType *ot)
/* 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;