[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55686] trunk/blender: Changes to Stencil control:

Antony Riakiotakis kalast at gmail.com
Sun Mar 31 18:17:18 CEST 2013


Revision: 55686
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55686
Author:   psy-fi
Date:     2013-03-31 16:17:18 +0000 (Sun, 31 Mar 2013)
Log Message:
-----------
Changes to Stencil control:

* Add a poll function that only activates the operator when a stencil
brush is active
* Change shortcuts to RMouse - translate, Shift - RMouse Scale, Ctrl -
RMouse, rotate. MUCH faster and simpler workflow.
* Change shortcut of colour sampling to S. Sampling is important but not
as important as warranting the Right Mouse button.
* Add a notifier so that toolbar gets updated texture rotation when
rotating the stencil

Also,
* Slight rearrangement of options so that jittering is more accessible
(easily more often used than smooth stroke)

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py
    trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2013-03-31 11:20:30 UTC (rev 55685)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2013-03-31 16:17:18 UTC (rev 55686)
@@ -837,17 +837,6 @@
             row.prop(brush, "use_pressure_spacing", toggle=True, text="")
 
         if context.sculpt_object:
-            if brush.sculpt_capabilities.has_smooth_stroke:
-                col = layout.column()
-                col.separator()
-
-                col.prop(brush, "use_smooth_stroke")
-
-                sub = col.column()
-                sub.active = brush.use_smooth_stroke
-                sub.prop(brush, "smooth_stroke_radius", text="Radius", slider=True)
-                sub.prop(brush, "smooth_stroke_factor", text="Factor", slider=True)
-
             if brush.sculpt_capabilities.has_jitter:
                 col.separator()
 
@@ -859,17 +848,17 @@
                     row.prop(brush, "use_relative_jitter", text="", icon='UNLOCKED')
                     row.prop(brush, "jitter_absolute")
                 row.prop(brush, "use_pressure_jitter", toggle=True, text="")
-        else:
-            col = layout.column()
-            col.separator()
+            if brush.sculpt_capabilities.has_smooth_stroke:
+                col = layout.column()
+                col.separator()
 
-            col.prop(brush, "use_smooth_stroke")
+                col.prop(brush, "use_smooth_stroke")
 
-            sub = col.column()
-            sub.active = brush.use_smooth_stroke
-            sub.prop(brush, "smooth_stroke_radius", text="Radius", slider=True)
-            sub.prop(brush, "smooth_stroke_factor", text="Factor", slider=True)
-
+                sub = col.column()
+                sub.active = brush.use_smooth_stroke
+                sub.prop(brush, "smooth_stroke_radius", text="Radius", slider=True)
+                sub.prop(brush, "smooth_stroke_factor", text="Factor", slider=True)
+        else:
             col.separator()
 
             row = col.row(align=True)
@@ -881,7 +870,16 @@
                 row.prop(brush, "jitter_absolute")
             row.prop(brush, "use_pressure_jitter", toggle=True, text="")
 
+            col = layout.column()
+            col.separator()
 
+            col.prop(brush, "use_smooth_stroke")
+
+            sub = col.column()
+            sub.active = brush.use_smooth_stroke
+            sub.prop(brush, "smooth_stroke_radius", text="Radius", slider=True)
+            sub.prop(brush, "smooth_stroke_factor", text="Factor", slider=True)
+
 class VIEW3D_PT_tools_brush_curve(Panel, View3DPaintPanel):
     bl_label = "Curve"
     bl_options = {'DEFAULT_CLOSED'}

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_image.c	2013-03-31 11:20:30 UTC (rev 55685)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_image.c	2013-03-31 16:17:18 UTC (rev 55686)
@@ -877,8 +877,7 @@
 static int sample_color_modal(bContext *C, wmOperator *op, const wmEvent *event)
 {
 	switch (event->type) {
-		case LEFTMOUSE:
-		case RIGHTMOUSE: // XXX hardcoded
+		case SKEY: // XXX hardcoded
 			return OPERATOR_FINISHED;
 		case MOUSEMOVE:
 			RNA_int_set_array(op->ptr, "location", event->mval);

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c	2013-03-31 11:20:30 UTC (rev 55685)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c	2013-03-31 16:17:18 UTC (rev 55686)
@@ -542,14 +542,18 @@
 				}
 			}
 			break;
-		case LEFTMOUSE:
-			if (event->val == KM_PRESS) {
+		/* XXX hardcoded! */
+		case RIGHTMOUSE:
+			if (event->val == KM_RELEASE) {
 				MEM_freeN(op->customdata);
+				WM_event_add_notifier(C, NC_WINDOW, NULL);
 				return OPERATOR_FINISHED;
 			}
-		case RIGHTMOUSE:
+		case ESCKEY:
 			if (event->val == KM_PRESS) {
-				return stencil_control_cancel(C, op);
+				stencil_control_cancel(C, op);
+				WM_event_add_notifier(C, NC_WINDOW, NULL);
+				return OPERATOR_CANCELLED;
 			}
 		default:
 			break;
@@ -560,6 +564,14 @@
 	return OPERATOR_RUNNING_MODAL;
 }
 
+static int stencil_control_poll(bContext *C)
+{
+	Paint *paint = paint_get_active_from_context(C);
+	Brush *br = paint->brush;
+
+	return br->mtex.brush_map_mode == MTEX_MAP_MODE_STENCIL;
+}
+
 static void BRUSH_OT_stencil_control(wmOperatorType *ot)
 {
 	static EnumPropertyItem stencil_control_items[] = {
@@ -577,6 +589,7 @@
 	ot->invoke = stencil_control_invoke;
 	ot->modal = stencil_control_modal;
 	ot->cancel = stencil_control_cancel;
+	ot->poll = stencil_control_poll;
 
 	/* flags */
 	ot->flag = 0;
@@ -588,11 +601,11 @@
 {
 	wmKeyMapItem *kmi;
 
-	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", QKEY, KM_PRESS, 0, 0);
+	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, 0, 0);
 	RNA_enum_set(kmi->ptr, "mode", STENCIL_TRANSLATE);
-	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", QKEY, KM_PRESS, KM_SHIFT, 0);
+	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_SHIFT, 0);
 	RNA_enum_set(kmi->ptr, "mode", STENCIL_SCALE);
-	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", QKEY, KM_PRESS, KM_CTRL, 0);
+	kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_CTRL, 0);
 	RNA_enum_set(kmi->ptr, "mode", STENCIL_ROTATE);
 
 }
@@ -852,7 +865,7 @@
 	keymap->poll = vertex_paint_mode_poll;
 
 	WM_keymap_verify_item(keymap, "PAINT_OT_vertex_paint", LEFTMOUSE, KM_PRESS, 0, 0);
-	WM_keymap_add_item(keymap, "PAINT_OT_sample_color", RIGHTMOUSE, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "PAINT_OT_sample_color", SKEY, KM_PRESS, 0, 0);
 
 	WM_keymap_add_item(keymap,
 	                   "PAINT_OT_vertex_color_set", KKEY, KM_PRESS, KM_SHIFT, 0);
@@ -932,7 +945,7 @@
 	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint", LEFTMOUSE, KM_PRESS, 0,        0)->ptr, "mode", BRUSH_STROKE_NORMAL);
 	RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint", LEFTMOUSE, KM_PRESS, KM_CTRL,  0)->ptr, "mode", BRUSH_STROKE_INVERT);
 	WM_keymap_add_item(keymap, "PAINT_OT_grab_clone", RIGHTMOUSE, KM_PRESS, 0, 0);
-	WM_keymap_add_item(keymap, "PAINT_OT_sample_color", RIGHTMOUSE, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "PAINT_OT_sample_color", SKEY, KM_PRESS, 0, 0);
 
 	ed_keymap_paint_brush_switch(keymap, "image_paint");
 	ed_keymap_paint_brush_size(keymap, "tool_settings.image_paint.brush.size");




More information about the Bf-blender-cvs mailing list