[Bf-blender-cvs] [cf8e71db615] blender2.8: UI: add icon color coding for different data types in the outliner.

Brecht Van Lommel noreply at git.blender.org
Mon Oct 8 19:49:36 CEST 2018


Commit: cf8e71db615c2d74bf87f18ab8389a675cbe6c51
Author: Brecht Van Lommel
Date:   Tue Oct 2 19:04:38 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBcf8e71db615c2d74bf87f18ab8389a675cbe6c51

UI: add icon color coding for different data types in the outliner.

For now we have categories collection, object, object data, modifiers &
constraints, and shading. The icons can be categorized by adding e.g.
DEF_ICON_OBJECT() in UI_icons.h.

Light themes will need to be updated to use darker colors to keep icons
visible in the outliner.

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

M	release/datafiles/userdef/userdef_default_theme.c
M	release/scripts/startup/bl_ui/space_userpref.py
M	source/blender/blenkernel/BKE_blender_version.h
M	source/blender/blenloader/intern/versioning_userdef.c
M	source/blender/editors/include/UI_icons.h
M	source/blender/editors/include/UI_resources.h
M	source/blender/editors/interface/interface_icons.c
M	source/blender/editors/interface/resources.c
M	source/blender/editors/space_outliner/outliner_draw.c
M	source/blender/makesdna/DNA_userdef_types.h
M	source/blender/makesrna/intern/rna_ui_api.c
M	source/blender/makesrna/intern/rna_userdef.c

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

diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c
index 82cf7e86807..0a5ac909c31 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -244,6 +244,11 @@ const bTheme U_theme_default = {
 		.gizmo_secondary = RGBA(0x63ffffff),
 		.gizmo_a = RGBA(0x4da84dff),
 		.gizmo_b = RGBA(0xa33535ff),
+		.icon_collection = RGBA(0xccccccff),
+		.icon_object = RGBA(0xcc986eff),
+		.icon_object_data = RGBA(0x98cc98ff),
+		.icon_modifier = RGBA(0x6e98ccff),
+		.icon_shading = RGBA(0xcc6e6eff),
 	},
 	.tbuts = {
 		.back = RGBA(0x42424200),
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 978212956aa..ce52e8cb837 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -819,6 +819,30 @@ class USERPREF_PT_theme(Panel):
 
             col.separator()
             col.separator()
+
+            col.label(text="Icon Colors:")
+
+            row = col.row()
+
+            subsplit = row.split(factor=0.95)
+
+            padding = subsplit.split(factor=0.15)
+            colsub = padding.column()
+            colsub = padding.column()
+            colsub.row().prop(ui, "icon_collection")
+            colsub.row().prop(ui, "icon_object")
+            colsub.row().prop(ui, "icon_object_data")
+
+            subsplit = row.split(factor=0.85)
+
+            padding = subsplit.split(factor=0.15)
+            colsub = padding.column()
+            colsub = padding.column()
+            colsub.row().prop(ui, "icon_modifier")
+            colsub.row().prop(ui, "icon_shading")
+
+            col.separator()
+            col.separator()
         elif theme.theme_area == 'BONE_COLOR_SETS':
             col = split.column()
 
diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h
index 84451fe31d4..d4b5b4c7d47 100644
--- a/source/blender/blenkernel/BKE_blender_version.h
+++ b/source/blender/blenkernel/BKE_blender_version.h
@@ -28,7 +28,7 @@
  * and keep comment above the defines.
  * Use STRINGIFY() rather than defining with quotes */
 #define BLENDER_VERSION         280
-#define BLENDER_SUBVERSION      25
+#define BLENDER_SUBVERSION      26
 /* Several breakages with 280, e.g. collections vs layers */
 #define BLENDER_MINVERSION      280
 #define BLENDER_MINSUBVERSION   0
diff --git a/source/blender/blenloader/intern/versioning_userdef.c b/source/blender/blenloader/intern/versioning_userdef.c
index cf5087b848b..b04acf6016c 100644
--- a/source/blender/blenloader/intern/versioning_userdef.c
+++ b/source/blender/blenloader/intern/versioning_userdef.c
@@ -57,6 +57,14 @@ static void do_versions_theme(UserDef *userdef, bTheme *btheme)
 		copy_v4_v4_char(btheme->tnla.anim_preview_range, btheme->tnla.anim_active);
 		copy_v4_v4_char(btheme->tipo.anim_preview_range, btheme->tact.anim_active);
 	}
+
+	if (!USER_VERSION_ATLEAST(280, 26)) {
+		copy_v4_v4_char(btheme->tui.icon_collection, U_theme_default.tui.icon_collection);
+		copy_v4_v4_char(btheme->tui.icon_object, U_theme_default.tui.icon_object);
+		copy_v4_v4_char(btheme->tui.icon_object_data, U_theme_default.tui.icon_object_data);
+		copy_v4_v4_char(btheme->tui.icon_modifier, U_theme_default.tui.icon_modifier);
+		copy_v4_v4_char(btheme->tui.icon_shading, U_theme_default.tui.icon_shading);
+	}
 #undef USER_VERSION_ATLEAST
 
 }
diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h
index 68c2044f95c..d6abfe6026a 100644
--- a/source/blender/editors/include/UI_icons.h
+++ b/source/blender/editors/include/UI_icons.h
@@ -30,6 +30,26 @@
 
 /* Note: this is included multiple times with different #defines for DEF_ICON. */
 
+/* Auto define more specific types for places that do not need the distinction. */
+#ifndef DEF_ICON_COLLECTION
+  #define DEF_ICON_COLLECTION DEF_ICON
+#endif
+#ifndef DEF_ICON_OBJECT
+  #define DEF_ICON_OBJECT DEF_ICON
+#endif
+#ifndef DEF_ICON_OBJECT_DATA
+  #define DEF_ICON_OBJECT_DATA DEF_ICON
+#endif
+#ifndef DEF_ICON_MODIFIER
+  #define DEF_ICON_MODIFIER DEF_ICON
+#endif
+#ifndef DEF_ICON_SHADING
+  #define DEF_ICON_SHADING DEF_ICON
+#endif
+#ifndef DEF_ICON_COLOR
+  #define DEF_ICON_COLOR DEF_ICON
+#endif
+
 /* ICON_ prefix added */
 DEF_ICON_COLOR(NONE)
 DEF_ICON(QUESTION)
@@ -115,17 +135,17 @@ DEF_ICON(FULLSCREEN_EXIT)
 DEF_ICON(ONIONSKIN)
 
 	/* BUTTONS */
-DEF_ICON(LIGHT)
-DEF_ICON(MATERIAL)
-DEF_ICON(TEXTURE)
+DEF_ICON_SHADING(LIGHT)
+DEF_ICON_SHADING(MATERIAL)
+DEF_ICON_SHADING(TEXTURE)
 DEF_ICON(ANIM)
-DEF_ICON(WORLD)
+DEF_ICON_SHADING(WORLD)
 DEF_ICON(SCENE)
 DEF_ICON(EDIT)
 DEF_ICON(GAME)
 DEF_ICON(RADIO)
 DEF_ICON_COLOR(SCRIPT)
-DEF_ICON(PARTICLES)
+DEF_ICON_MODIFIER(PARTICLES)
 DEF_ICON(PHYSICS)
 DEF_ICON(SPEAKER)
 DEF_ICON(TEXTURE_SHADED)
@@ -200,34 +220,34 @@ DEF_ICON_BLANK(77b)
 	/* DATA */
 DEF_ICON(SCENE_DATA)
 DEF_ICON(RENDERLAYERS)
-DEF_ICON(WORLD_DATA)
+DEF_ICON_SHADING(WORLD_DATA)
 DEF_ICON(OBJECT_DATA)
 DEF_ICON(MESH_DATA)
 DEF_ICON(CURVE_DATA)
 DEF_ICON(META_DATA)
 DEF_ICON(LATTICE_DATA)
-DEF_ICON(LIGHT_DATA)
-DEF_ICON(MATERIAL_DATA)
-DEF_ICON(TEXTURE_DATA)
+DEF_ICON_SHADING(LIGHT_DATA)
+DEF_ICON_SHADING(MATERIAL_DATA)
+DEF_ICON_SHADING(TEXTURE_DATA)
 DEF_ICON(ANIM_DATA)
 DEF_ICON(CAMERA_DATA)
 DEF_ICON(PARTICLE_DATA)
 DEF_ICON(LIBRARY_DATA_DIRECT)
-DEF_ICON(GROUP)
+DEF_ICON_COLLECTION(GROUP)
 DEF_ICON(ARMATURE_DATA)
 DEF_ICON(POSE_DATA)
 DEF_ICON(BONE_DATA)
-DEF_ICON(CONSTRAINT)
+DEF_ICON_MODIFIER(CONSTRAINT)
 DEF_ICON_COLOR(SHAPEKEY_DATA)
-DEF_ICON(CONSTRAINT_BONE)
+DEF_ICON_MODIFIER(CONSTRAINT_BONE)
 DEF_ICON(CAMERA_STEREO)
 DEF_ICON(PACKAGE)
 DEF_ICON(UGLYPACKAGE)
 DEF_ICON_BLANK(79b)
 
 	/* DATA */
-DEF_ICON(BRUSH_DATA)
-DEF_ICON(IMAGE_DATA)
+DEF_ICON_SHADING(BRUSH_DATA)
+DEF_ICON_SHADING(IMAGE_DATA)
 DEF_ICON(FILE)
 DEF_ICON(FCURVE)
 DEF_ICON(FONT_DATA)
@@ -242,7 +262,7 @@ DEF_ICON_COLOR(BOIDS)
 DEF_ICON(STRANDS)
 DEF_ICON(LIBRARY_DATA_INDIRECT)
 DEF_ICON(GREASEPENCIL)
-DEF_ICON(LINE_DATA)
+DEF_ICON_SHADING(LINE_DATA)
 DEF_ICON_COLOR(LIBRARY_DATA_OVERRIDE)
 DEF_ICON(GROUP_BONE)
 DEF_ICON(GROUP_VERTEX)
@@ -282,22 +302,22 @@ DEF_ICON(SYSTEM)
 DEF_ICON(SETTINGS)
 
 	/* OUTLINER */
-DEF_ICON(OUTLINER_OB_EMPTY)
-DEF_ICON(OUTLINER_OB_MESH)
-DEF_ICON(OUTLINER_OB_CURVE)
-DEF_ICON(OUTLINER_OB_LATTICE)
-DEF_ICON(OUTLINER_OB_META)
-DEF_ICON(OUTLINER_OB_LIGHT)
-DEF_ICON(OUTLINER_OB_CAMERA)
-DEF_ICON(OUTLINER_OB_ARMATURE)
-DEF_ICON(OUTLINER_OB_FONT)
-DEF_ICON(OUTLINER_OB_SURFACE)
-DEF_ICON(OUTLINER_OB_SPEAKER)
-DEF_ICON(OUTLINER_OB_FORCE_FIELD)
-DEF_ICON(OUTLINER_OB_GROUP_INSTANCE)
-DEF_ICON(OUTLINER_OB_GREASEPENCIL)
-DEF_ICON(OUTLINER_OB_LIGHTPROBE)
-DEF_ICON(OUTLINER_OB_IMAGE)
+DEF_ICON_OBJECT(OUTLINER_OB_EMPTY)
+DEF_ICON_OBJECT(OUTLINER_OB_MESH)
+DEF_ICON_OBJECT(OUTLINER_OB_CURVE)
+DEF_ICON_OBJECT(OUTLINER_OB_LATTICE)
+DEF_ICON_OBJECT(OUTLINER_OB_META)
+DEF_ICON_OBJECT(OUTLINER_OB_LIGHT)
+DEF_ICON_OBJECT(OUTLINER_OB_CAMERA)
+DEF_ICON_OBJECT(OUTLINER_OB_ARMATURE)
+DEF_ICON_OBJECT(OUTLINER_OB_FONT)
+DEF_ICON_OBJECT(OUTLINER_OB_SURFACE)
+DEF_ICON_OBJECT(OUTLINER_OB_SPEAKER)
+DEF_ICON_OBJECT(OUTLINER_OB_FORCE_FIELD)
+DEF_ICON_OBJECT(OUTLINER_OB_GROUP_INSTANCE)
+DEF_ICON_OBJECT(OUTLINER_OB_GREASEPENCIL)
+DEF_ICON_OBJECT(OUTLINER_OB_LIGHTPROBE)
+DEF_ICON_OBJECT(OUTLINER_OB_IMAGE)
 DEF_ICON_BLANK(125)
 DEF_ICON(RESTRICT_COLOR_OFF)
 DEF_ICON(RESTRICT_COLOR_ON)
@@ -311,19 +331,19 @@ DEF_ICON_BLANK(127b)
 
 	/* OUTLINER */
 DEF_ICON_BLANK(128)
-DEF_ICON(OUTLINER_DATA_MESH)
-DEF_ICON(OUTLINER_DATA_CURVE)
-DEF_ICON(OUTLINER_DATA_LATTICE)
-DEF_ICON(OUTLINER_DATA_META)
-DEF_ICON(OUTLINER_DATA_LIGHT)
-DEF_ICON(OUTLINER_DATA_CAMERA)
-DEF_ICON(OUTLINER_DATA_ARMATURE)
-DEF_ICON(OUTLINER_DATA_FONT)
-DEF_ICON(OUTLINER_DATA_SURFACE)
-DEF_ICON(OUTLINER_DATA_SPEAKER)
-DEF_ICON(OUTLINER_DATA_POSE)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_MESH)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_CURVE)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_LATTICE)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_META)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_LIGHT)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_CAMERA)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_ARMATURE)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_FONT)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_SURFACE)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_SPEAKER)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_POSE)
 DEF_ICON_BLANK(130)
-DEF_ICON(OUTLINER_DATA_GREASEPENCIL)
+DEF_ICON_OBJECT_DATA(OUTLINER_DATA_GREASEPENCIL)
 DEF_ICON_BLANK(132)
 DEF_ICON_BLANK(133)
 DEF_ICON_BLANK(134)
@@ -350,11 +370,11 @@ DEF_ICON(MESH_TORUS)
 DEF_ICON(MESH_CONE)
 DEF_ICON(MESH_CAPSULE)
 DEF_ICON_BLANK(611)
-DEF_ICON(LIGHT_POINT)
-DEF_ICON(LIGHT_SUN)
-DEF_ICON(LIGHT_SPOT)
-DEF_ICON(LIGHT_HEMI)
-DEF_ICON(LIGHT_AREA)
+DEF_ICON_SHADING(LIGHT_POINT)
+DEF_ICON_SHADING(LIGHT_SUN)
+DEF_ICON_SHADING(LIGHT_SPOT)
+DEF_ICON_SHADING(LIGHT_HEMI)
+DEF_ICON_SHADING(LIGHT_AREA)
 DEF_ICON_BLANK(617)
 DEF_ICON_BLANK(618)
 DEF_ICON_COLOR(META_EMPTY)
@@ -380,9 +400,9 @@ DEF_ICON(CURVE_BEZCIRCLE)
 DEF_ICON(CURVE_NCURVE)
 DEF_ICON(CURVE_NCIRCLE)
 DEF_ICON(CURVE_PATH)
-DEF_ICON(LIGHTPROBE_CUBEMAP)
-DEF_ICON(LIGHTPROBE_PLANAR)
-DEF_ICON(LIGHTPROBE_GRID)
+DEF_ICON_SHADING(LIGHTPROBE_CUBEMAP)
+DEF_ICON_SHADING(LIGHTPROBE_PLANAR)
+DEF_ICON_SHADING(LIGHTPROBE_GRID)
 DEF_ICON_BLANK(647)
 DEF_ICON_BLANK(648)
 DEF_ICON(COLOR_RED)
@@ -506,7 +526,7 @@ DEF_ICON_BLANK(784)
 DEF_ICON_BLANK(785)
 
 	/* MODIFIERS */
-DEF_ICON(MODIFIER)
+DEF_ICON_MODIFIER(MODIFIER)
 DEF_ICON_COLOR(MOD_WAVE)
 DEF_ICON_COLOR(MOD_BUILD)
 DEF_ICON_COLOR(MOD_DECIM)
@@ -1034,3 +1054,15 @@ DEF_ICON_COLOR(EVENT_HOME)
 DEF_ICON_COLOR(EVENT_END)
 DEF_ICON_COLOR(EVENT_RETURN)
 /* add as needed. */
+
+/* Undefine all types. */
+
+#undef DEF_ICON
+#undef DEF_ICON_COLLECTION
+#undef DEF_ICON_OBJECT
+#undef DEF_ICON_OBJECT_DATA
+#undef DEF_ICON_MODIFIER
+#undef DEF_ICON_SHADING
+#undef DEF_ICON_VECTOR
+#undef DEF_ICON_COLOR
+#undef DEF_ICON_BLANK
diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h
index 6315a3daafa..1a8b7bb12af 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -29,

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list