[Bf-blender-cvs] [84334bd] master: Fix 37571: Knife Select should be disabled when no faces are selected

Campbell Barton noreply at git.blender.org
Mon Nov 25 23:47:29 CET 2013


Commit: 84334bde01dd2ed7913cbddeea966b2f0364a2b9
Author: Campbell Barton
Date:   Tue Nov 26 09:44:08 2013 +1100
http://developer.blender.org/rB84334bde01dd2ed7913cbddeea966b2f0364a2b9

Fix 37571: Knife Select should be disabled when no faces are selected

also check a similar case for bisect

===================================================================

M	release/scripts/addons
M	release/scripts/addons_contrib
M	source/blender/editors/mesh/editmesh_bisect.c
M	source/blender/editors/mesh/editmesh_knife.c

===================================================================

diff --git a/release/scripts/addons b/release/scripts/addons
index 870b946..6501c6c 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 870b9461205e1b5085c9ff75ab602ccdbbc60384
+Subproject commit 6501c6cadfef1804dfa4b7aa2eb208207570a42a
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
index 4fe6a9e..6695fc6 160000
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@ -1 +1 @@
-Subproject commit 4fe6a9e046f9578a0dadb1186269ac5e406a8c15
+Subproject commit 6695fc64a51fcc64c96bc31c5b209a54d8ea9ba6
diff --git a/source/blender/editors/mesh/editmesh_bisect.c b/source/blender/editors/mesh/editmesh_bisect.c
index 7bc3ff3..c3c4bda 100644
--- a/source/blender/editors/mesh/editmesh_bisect.c
+++ b/source/blender/editors/mesh/editmesh_bisect.c
@@ -36,6 +36,7 @@
 #include "BKE_global.h"
 #include "BKE_context.h"
 #include "BKE_editmesh.h"
+#include "BKE_report.h"
 
 #include "RNA_define.h"
 #include "RNA_access.h"
@@ -110,8 +111,15 @@ static bool mesh_bisect_interactive_calc(
 
 static int mesh_bisect_invoke(bContext *C, wmOperator *op, const wmEvent *event)
 {
+	Object *obedit = CTX_data_edit_object(C);
+	BMEditMesh *em = BKE_editmesh_from_object(obedit);
 	int ret;
 
+	if (em->bm->totedgesel == 0) {
+		BKE_report(op->reports, RPT_ERROR, "Selected edges/faces required");
+		return OPERATOR_CANCELLED;
+	}
+
 	/* if the properties are set or there is no rv3d,
 	 * skip model and exec immediately */
 
@@ -129,8 +137,6 @@ static int mesh_bisect_invoke(bContext *C, wmOperator *op, const wmEvent *event)
 		wmGesture *gesture = op->customdata;
 		BisectData *opdata;
 
-		Object *obedit = CTX_data_edit_object(C);
-		BMEditMesh *em = BKE_editmesh_from_object(obedit);
 
 		opdata = MEM_mallocN(sizeof(BisectData), "inset_operator_data");
 		opdata->mesh_backup = EDBM_redo_state_store(em);
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index 6b99f53..ce89855 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -50,6 +50,7 @@
 #include "BKE_context.h"
 #include "BKE_editmesh.h"
 #include "BKE_editmesh_bvh.h"
+#include "BKE_report.h"
 
 #include "BIF_gl.h"
 #include "BIF_glutil.h" /* for paint cursor */
@@ -2646,6 +2647,15 @@ static int knifetool_invoke(bContext *C, wmOperator *op, const wmEvent *event)
 
 	KnifeTool_OpData *kcd;
 
+	if (only_select) {
+		Object *obedit = CTX_data_edit_object(C);
+		BMEditMesh *em = BKE_editmesh_from_object(obedit);
+		if (em->bm->totfacesel == 0) {
+			BKE_report(op->reports, RPT_ERROR, "Selected faces required");
+			return OPERATOR_CANCELLED;
+		}
+	}
+
 	view3d_operator_needs_opengl(C);
 
 	/* alloc new customdata */




More information about the Bf-blender-cvs mailing list