Commit: 9394d455af43b3b4b00bf4f65e250f14567970fd
Author: Bastien Montagne
Date: Tue Mar 29 17:26:13 2022 +0200
Branches: master
https://developer.blender.org/rB9394d455af43b3b4b00bf4f65e250f14567970fd
LibOverride: Add a new 'virtual' non-editable override icon and use it in
Outliner.
Ref: {T95707}.
===================================================================
M source/blender/editors/include/UI_icons.h
M source/blender/editors/interface/interface_icons.c
===================================================================
diff --git a/source/blender/editors/include/UI_icons.h
b/source/blender/editors/include/UI_icons.h
index 8607c6d242c..94232a5108d 100644
--- a/source/blender/editors/include/UI_icons.h
+++ b/source/blender/editors/include/UI_icons.h
@@ -982,6 +982,7 @@ DEF_ICON_VECTOR(SEQUENCE_COLOR_08)
DEF_ICON_VECTOR(SEQUENCE_COLOR_09)
DEF_ICON_VECTOR(LIBRARY_DATA_INDIRECT)
+DEF_ICON_VECTOR(LIBRARY_DATA_OVERRIDE_NONEDITABLE)
/* Events. */
DEF_ICON_COLOR(EVENT_A)
diff --git a/source/blender/editors/interface/interface_icons.c
b/source/blender/editors/interface/interface_icons.c
index 887781beda1..e3bf1a48907 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -476,6 +476,21 @@ static void vicon_strip_color_draw_library_data_indirect(
x, y, ICON_LIBRARY_DATA_DIRECT, aspect, ICON_INDIRECT_DATA_ALPHA *
alpha, 0.0f, NULL, false);
}
+static void vicon_strip_color_draw_library_data_override_noneditable(
+ int x, int y, int w, int UNUSED(h), float alpha)
+{
+ const float aspect = (float)ICON_DEFAULT_WIDTH / (float)w;
+
+ UI_icon_draw_ex(x,
+ y,
+ ICON_LIBRARY_DATA_OVERRIDE,
+ aspect,
+ ICON_INDIRECT_DATA_ALPHA * alpha * 0.75f,
+ 0.0f,
+ NULL,
+ false);
+}
+
/* Dynamically render icon instead of rendering a plain color to a
texture/buffer
* This is not strictly a "vicon", as it needs access to icon->obj to get the
color info,
* but it works in a very similar way.
@@ -987,6 +1002,8 @@ static void init_internal_icons(void)
def_internal_vicon(ICON_SEQUENCE_COLOR_09, vicon_strip_color_draw_09);
def_internal_vicon(ICON_LIBRARY_DATA_INDIRECT,
vicon_strip_color_draw_library_data_indirect);
+ def_internal_vicon(ICON_LIBRARY_DATA_OVERRIDE_NONEDITABLE,
+ vicon_strip_color_draw_library_data_override_noneditable);
}
static void init_iconfile_list(struct ListBase *list)
@@ -2192,6 +2209,10 @@ int UI_icon_from_library(const ID *id)
return ICON_LIBRARY_DATA_DIRECT;
}
if (ID_IS_OVERRIDE_LIBRARY(id)) {
+ if (!ID_IS_OVERRIDE_LIBRARY_REAL(id) ||
+ (id->override_library->flag & IDOVERRIDE_LIBRARY_FLAG_SYSTEM_DEFINED)
!= 0) {
+ return ICON_LIBRARY_DATA_OVERRIDE_NONEDITABLE;
+ }
return ICON_LIBRARY_DATA_OVERRIDE;
}
if (ID_IS_ASSET(id)) {
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs