[Bf-blender-cvs] [ffa21e74178] greasepencil-object: WIP: Changes to make Sculpt and Weight paint tools work
Antonio Vazquez
noreply at git.blender.org
Tue Jul 10 16:03:02 CEST 2018
Commit: ffa21e741780b413c055be46595236599e529363
Author: Antonio Vazquez
Date: Tue Jul 10 16:02:44 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBffa21e741780b413c055be46595236599e529363
WIP: Changes to make Sculpt and Weight paint tools work
This is a temp solution while we get the new toolsystem in place
===================================================================
M release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M source/blender/editors/gpencil/gpencil_brush.c
M source/blender/editors/gpencil/gpencil_ops.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 85aed73f312..c4988b91a09 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -1010,6 +1010,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Smooth",
icon="ops.gpencil.sculpt_smooth",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='SMOOTH', wait_for_input=False),
@@ -1026,6 +1027,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Thickness",
icon="ops.gpencil.sculpt_thickness",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='THICKNESS', wait_for_input=False),
@@ -1042,6 +1044,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Strength",
icon="ops.gpencil.sculpt_strength",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='STRENGTH', wait_for_input=False),
@@ -1058,6 +1061,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Grab",
icon="ops.gpencil.sculpt_grab",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='GRAB', wait_for_input=False),
@@ -1074,6 +1078,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Push",
icon="ops.gpencil.sculpt_push",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='PUSH', wait_for_input=False),
@@ -1090,6 +1095,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Twist",
icon="ops.gpencil.sculpt_twist",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='TWIST', wait_for_input=False),
@@ -1106,6 +1112,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Pinch",
icon="ops.gpencil.sculpt_pinch",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='PINCH', wait_for_input=False),
@@ -1122,6 +1129,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Randomize",
icon="ops.gpencil.sculpt_randomize",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='RANDOMIZE', wait_for_input=False),
@@ -1138,6 +1146,7 @@ class _defs_gpencil_sculpt:
return dict(
text="Clone",
icon="ops.gpencil.sculpt_clone",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='CLONE', wait_for_input=False),
@@ -1169,6 +1178,7 @@ class _defs_gpencil_weight:
return dict(
text="Draw",
icon="ops.gpencil.sculpt_weight",
+ widget=None,
keymap=(
("gpencil.brush_paint",
dict(mode='WEIGHT', wait_for_input=False),
diff --git a/source/blender/editors/gpencil/gpencil_brush.c b/source/blender/editors/gpencil/gpencil_brush.c
index d685e2d5743..549ea2aef25 100644
--- a/source/blender/editors/gpencil/gpencil_brush.c
+++ b/source/blender/editors/gpencil/gpencil_brush.c
@@ -1176,13 +1176,16 @@ static bool gpsculpt_brush_init(bContext *C, wmOperator *op)
/* set the brush using the tool */
GP_BrushEdit_Settings *gset = &ts->gp_sculpt;
eGP_EditBrush_Types mode = RNA_enum_get(op->ptr, "mode");
- if (is_weight_mode) {
- gset->weighttype = mode;
- }
- else {
- gset->brushtype = mode;
- }
+ const bool keep_brush = RNA_boolean_get(op->ptr, "keep_brush");
+ if (!keep_brush) {
+ if (is_weight_mode) {
+ gset->weighttype = mode;
+ }
+ else {
+ gset->brushtype = mode;
+ }
+ }
tGP_BrushEditData *gso;
/* setup operator data */
@@ -2099,6 +2102,7 @@ void GPENCIL_OT_brush_paint(wmOperatorType *ot)
/* properties */
ot->prop = RNA_def_enum(ot->srna, "mode", prop_gpencil_sculpt_brush_items, 0, "Mode", "Brush mode");
+ RNA_def_property_flag(ot->prop, PROP_HIDDEN | PROP_SKIP_SAVE);
PropertyRNA *prop;
prop = RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", "");
@@ -2107,6 +2111,10 @@ void GPENCIL_OT_brush_paint(wmOperatorType *ot)
prop = RNA_def_boolean(ot->srna, "wait_for_input", true, "Wait for Input",
"Enter a mini 'sculpt-mode' if enabled, otherwise, exit after drawing a single stroke");
RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE);
+
+ prop = RNA_def_boolean(ot->srna, "keep_brush", false, "Keep Brush",
+ "Keep current brush activated");
+ RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE);
}
/* ************************************************ */
diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c
index b61a9d3f0b8..ea9f5de771c 100644
--- a/source/blender/editors/gpencil/gpencil_ops.c
+++ b/source/blender/editors/gpencil/gpencil_ops.c
@@ -266,15 +266,18 @@ static void ed_keymap_gpencil_sculpt(wmKeyMap *keymap)
*
* For the modal version, use D+E -> Sculpt
*/
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
+ /* GPXX: disabled to make toolsystem works */
+ //kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, 0, 0);
+ //RNA_boolean_set(kmi->ptr, "wait_for_input", false);
kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
RNA_boolean_set(kmi->ptr, "wait_for_input", false);
+ RNA_boolean_set(kmi->ptr, "keep_brush", true);
/*RNA_boolean_set(kmi->ptr, "use_invert", true);*/
kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
RNA_boolean_set(kmi->ptr, "wait_for_input", false);
+ RNA_boolean_set(kmi->ptr, "keep_brush", true);
/*RNA_boolean_set(kmi->ptr, "use_smooth", true);*/
/* Shift-FKEY = Sculpt Strength */
@@ -300,15 +303,18 @@ static void ed_keymap_gpencil_weight(wmKeyMap *keymap)
*
* For the modal version, use D+E -> Sculpt
*/
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
+ /* GPXX: disabled to make toolsystem works */
+ //kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, 0, 0);
+ //RNA_boolean_set(kmi->ptr, "wait_for_input", false);
kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
RNA_boolean_set(kmi->ptr, "wait_for_input", false);
+ RNA_boolean_set(kmi->ptr, "keep_brush", true);
/*RNA_boolean_set(kmi->ptr, "use_invert", true);*/
kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
RNA_boolean_set(kmi->ptr, "wait_for_input", false);
+ RNA_boolean_set(kmi->ptr, "keep_brush", true);
/*RNA_boolean_set(kmi->ptr, "use_smooth", true);*/
}
More information about the Bf-blender-cvs
mailing list