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
diff options
context:
space:
mode:
authorWilliam Reynish <billrey@me.com>2019-08-04 13:37:22 +0300
committerWilliam Reynish <billrey@me.com>2019-08-04 13:37:22 +0300
commitc0aada58c9820b36176ec54d281513eeac65ca0c (patch)
tree7f5b30af44af4a1889846fdf7188bb4515fd685b
parentdd3cdf6f1e9d7b19cc0b4bb85136a12e558e291d (diff)
Tweak Brush Gradient UI
Gradient and Color are mutually exclusive, so we now communicate this in the UI much more clearly Differential Revision: https://developer.blender.org/D5395 Reviewers: brechrt
-rw-r--r--release/scripts/startup/bl_ui/space_image.py40
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py43
-rw-r--r--source/blender/makesrna/intern/rna_brush.c19
3 files changed, 27 insertions, 75 deletions
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index a483ff3f291..eea34beaad1 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -1077,9 +1077,12 @@ class IMAGE_PT_paint_color(Panel, ImagePaintPanel):
settings = context.tool_settings.image_paint
brush = settings.brush
- layout.active = not brush.use_gradient
+ layout.prop(brush, "color_type", expand=True)
- brush_texpaint_common_color(self, context, layout, brush, settings, True)
+ if brush.color_type == 'COLOR':
+ brush_texpaint_common_color(self, context, layout, brush, settings, True)
+ elif brush.color_type == 'GRADIENT':
+ brush_texpaint_common_gradient(self, context, layout, brush, settings, True)
class IMAGE_PT_paint_swatches(Panel, ImagePaintPanel):
@@ -1106,38 +1109,6 @@ class IMAGE_PT_paint_swatches(Panel, ImagePaintPanel):
layout.template_palette(settings, "palette", color=True)
-class IMAGE_PT_paint_gradient(Panel, ImagePaintPanel):
- bl_category = "Tool"
- bl_context = ".paint_common_2d"
- bl_parent_id = "IMAGE_PT_paint"
- bl_label = "Gradient"
- bl_options = {'DEFAULT_CLOSED'}
-
- @classmethod
- def poll(cls, context):
- settings = context.tool_settings.image_paint
- brush = settings.brush
- capabilities = brush.image_paint_capabilities
-
- return capabilities.has_color
-
- def draw_header(self, context):
- settings = context.tool_settings.image_paint
- brush = settings.brush
- self.layout.prop(brush, "use_gradient", text="")
-
- def draw(self, context):
- layout = self.layout
- layout.use_property_split = False
- layout.use_property_decorate = False # No animation.
- settings = context.tool_settings.image_paint
- brush = settings.brush
-
- layout.active = brush.use_gradient
-
- brush_texpaint_common_gradient(self, context, layout, brush, settings, True)
-
-
class IMAGE_PT_paint_clone(Panel, ImagePaintPanel):
bl_category = "Tool"
bl_context = ".paint_common_2d"
@@ -1740,7 +1711,6 @@ classes = (
IMAGE_PT_paint,
IMAGE_PT_paint_color,
IMAGE_PT_paint_swatches,
- IMAGE_PT_paint_gradient,
IMAGE_PT_paint_clone,
IMAGE_PT_paint_options,
IMAGE_PT_tools_brush_texture,
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index df605229922..262fafa596d 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -429,9 +429,16 @@ class VIEW3D_PT_tools_brush_color(Panel, View3DPaintPanel):
settings = self.paint_settings(context)
brush = settings.brush
- layout.active = not brush.use_gradient
+ if context.vertex_paint_object:
+ brush_texpaint_common_color(self, context, layout, brush, settings, True)
+
+ else:
+ layout.prop(brush, "color_type", expand=True)
- brush_texpaint_common_color(self, context, layout, brush, settings, True)
+ if brush.color_type == 'COLOR':
+ brush_texpaint_common_color(self, context, layout, brush, settings, True)
+ elif brush.color_type == 'GRADIENT':
+ brush_texpaint_common_gradient(self, context, layout, brush, settings, True)
class VIEW3D_PT_tools_brush_swatches(Panel, View3DPaintPanel):
@@ -461,37 +468,6 @@ class VIEW3D_PT_tools_brush_swatches(Panel, View3DPaintPanel):
layout.template_palette(settings, "palette", color=True)
-class VIEW3D_PT_tools_brush_gradient(Panel, View3DPaintPanel):
- bl_context = ".paint_common" # dot on purpose (access from topbar)
- bl_parent_id = "VIEW3D_PT_tools_brush"
- bl_label = "Gradient"
- bl_options = {'DEFAULT_CLOSED'}
-
- @classmethod
- def poll(cls, context):
- settings = cls.paint_settings(context)
- brush = settings.brush
- capabilities = brush.image_paint_capabilities
-
- return capabilities.has_color and context.image_paint_object
-
- def draw_header(self, context):
- settings = self.paint_settings(context)
- brush = settings.brush
- self.layout.prop(brush, "use_gradient", text="")
-
- def draw(self, context):
- layout = self.layout
- layout.use_property_split = False
- layout.use_property_decorate = False # No animation.
- settings = self.paint_settings(context)
- brush = settings.brush
-
- layout.active = brush.use_gradient
-
- brush_texpaint_common_gradient(self, context, layout, brush, settings, True)
-
-
class VIEW3D_PT_tools_brush_clone(Panel, View3DPaintPanel):
bl_context = ".paint_common" # dot on purpose (access from topbar)
bl_parent_id = "VIEW3D_PT_tools_brush"
@@ -2106,7 +2082,6 @@ classes = (
VIEW3D_PT_tools_brush,
VIEW3D_PT_tools_brush_color,
VIEW3D_PT_tools_brush_swatches,
- VIEW3D_PT_tools_brush_gradient,
VIEW3D_PT_tools_brush_clone,
VIEW3D_PT_tools_brush_options,
TEXTURE_UL_texpaintslots,
diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c
index eeba7161309..2484e432795 100644
--- a/source/blender/makesrna/intern/rna_brush.c
+++ b/source/blender/makesrna/intern/rna_brush.c
@@ -1565,6 +1565,12 @@ static void rna_def_brush(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL},
};
+static const EnumPropertyItem color_gradient_items[] = {
+ {0, "COLOR", 0, "Color", "Paint with a single color"},
+ {BRUSH_USE_GRADIENT, "GRADIENT", 0, "Gradient", "Paint with a gradient"},
+ {0, NULL, 0, NULL, NULL},
+ };
+
static const EnumPropertyItem brush_curve_preset_items[] = {
{BRUSH_CURVE_CUSTOM, "CUSTOM", ICON_RNDCURVE, "Custom", ""},
{BRUSH_CURVE_SMOOTH, "SMOOTH", ICON_SMOOTHCURVE, "Smooth", ""},
@@ -1934,12 +1940,6 @@ static void rna_def_brush(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Size Pressure", "Enable tablet pressure sensitivity for size");
RNA_def_property_update(prop, 0, "rna_Brush_update");
- prop = RNA_def_property(srna, "use_gradient", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "flag", BRUSH_USE_GRADIENT);
- RNA_def_property_boolean_funcs(prop, NULL, "rna_Brush_use_gradient_set");
- RNA_def_property_ui_text(prop, "Use Gradient", "Use Gradient by utilizing a sampling method");
- RNA_def_property_update(prop, 0, "rna_Brush_update");
-
prop = RNA_def_property(srna, "use_pressure_jitter", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", BRUSH_JITTER_PRESSURE);
RNA_def_property_ui_icon(prop, ICON_STYLUS_PRESSURE, 0);
@@ -2055,6 +2055,13 @@ static void rna_def_brush(BlenderRNA *brna)
prop, "Radius Unit", "Measure brush size relative to the view or the scene");
RNA_def_property_update(prop, 0, "rna_Brush_update");
+ prop = RNA_def_property(srna, "color_type", PROP_ENUM, PROP_NONE); /* as an enum */
+ RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
+ RNA_def_property_enum_items(prop, color_gradient_items);
+ RNA_def_property_enum_funcs(prop, NULL, "rna_Brush_use_gradient_set", NULL);
+ RNA_def_property_ui_text(prop, "Color Type", "Use single color or gradient when painting");
+ RNA_def_property_update(prop, 0, "rna_Brush_update");
+
prop = RNA_def_property(srna, "use_edge_to_edge", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", BRUSH_EDGE_TO_EDGE);
RNA_def_property_ui_text(prop, "Edge-to-edge", "Drag anchor brush from edge-to-edge");