[Bf-blender-cvs] [a74a8dfede4] greasepencil-object: New template for grease pencil material previews

Antonio Vazquez noreply at git.blender.org
Wed Jul 11 16:21:19 CEST 2018


Commit: a74a8dfede49be8963de64d24f906c40e90c1186
Author: Antonio Vazquez
Date:   Wed Jul 11 16:21:13 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rBa74a8dfede49be8963de64d24f906c40e90c1186

New template for grease pencil material previews

This is the initial step to prepare the use of material previews in the topbar as color selector.

We need a new template to hide some elements of the default template.

Still the preview of the material is not available.

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

M	release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M	source/blender/editors/include/UI_interface.h
M	source/blender/editors/interface/interface_templates.c
M	source/blender/makesrna/intern/rna_ui_api.c

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

diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 77c6e65258b..28e960fa913 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -1003,7 +1003,7 @@ class _defs_gpencil_paint:
                 row.prop(gp_settings, "gpencil_fill_simplyfy_level", text="Simplify")
 
                 row = layout.row()
-                row.template_ID(gp_settings, "material")
+                row.template_greasepencil_color(gp_settings, "material", rows=3, cols=8)
 
                 row = layout.row(align=True)
                 row.prop(gp_settings, "gpencil_fill_draw_mode", text="")
@@ -1018,7 +1018,7 @@ class _defs_gpencil_paint:
                 row.prop(gp_settings, "use_strength_pressure", text="", icon='STYLUS_PRESSURE')
 
                 row = layout.row(align=True)
-                row.template_ID(gp_settings, "material")
+                row.template_greasepencil_color(gp_settings, "material", rows=3, cols=8)
 
     @staticmethod
     def generate_from_brushes(context):
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 753fdd07567..07ed6f715a4 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -1052,6 +1052,9 @@ void uiTemplatePathBuilder(
         struct PointerRNA *root_ptr, const char *text);
 uiLayout *uiTemplateModifier(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr);
 uiLayout *uiTemplateGpencilModifier(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr);
+void uiTemplateGpencilColorPreview(
+	uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname,
+	int rows, int cols, int filter);
 
 uiLayout *uiTemplateShaderFx(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr);
 
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index de0ff77ac92..566ce833770 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -951,6 +951,17 @@ void uiTemplateIDPreview(
 	        rows, cols, filter, false);
 }
 
+void uiTemplateGpencilColorPreview(
+	uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname,
+	int rows, int cols, int filter)
+{
+	ui_template_id(
+		layout, C, ptr, propname,
+		NULL, NULL, NULL,
+		UI_ID_BROWSE | UI_ID_PREVIEWS,
+		rows, cols, filter, false);
+}
+
 /**
  * Version of #uiTemplateID using tabs.
  */
diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c
index 531a7f76bcd..a7e6cd8f1d6 100644
--- a/source/blender/makesrna/intern/rna_ui_api.c
+++ b/source/blender/makesrna/intern/rna_ui_api.c
@@ -852,6 +852,14 @@ void RNA_api_ui_layout(StructRNA *srna)
 	parm = RNA_def_pointer(func, "layout", "UILayout", "", "Sub-layout to put items in");
 	RNA_def_function_return(func, parm);
 
+	func = RNA_def_function(srna, "template_greasepencil_color", "uiTemplateGpencilColorPreview");
+	RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+	api_ui_item_rna_common(func);
+	RNA_def_int(func, "rows", 0, 0, INT_MAX, "Number of thumbnail preview rows to display", "", 0, INT_MAX);
+	RNA_def_int(func, "cols", 0, 0, INT_MAX, "Number of thumbnail preview columns to display", "", 0, INT_MAX);
+	RNA_def_enum(func, "filter", id_template_filter_items, UI_TEMPLATE_ID_FILTER_ALL,
+		"", "Optionally limit the items which can be selected");
+
 	func = RNA_def_function(srna, "template_constraint", "uiTemplateConstraint");
 	RNA_def_function_ui_description(func, "Generates the UI layout for constraints");
 	parm = RNA_def_pointer(func, "data", "Constraint", "", "Constraint data");



More information about the Bf-blender-cvs mailing list