Commit: 694bc4d040a8bf762284598e98bf0575549a3e1c Author: Harley Acheson Date: Mon Feb 8 08:19:23 2021 -0800 Branches: master https://developer.blender.org/rB694bc4d040a8bf762284598e98bf0575549a3e1c
Fix for T84038: Improved Report Warnings Improved contrast for Status Bar report warning messages. Differential Revision: https://developer.blender.org/D10242 Reviewed by Hans Goudey =================================================================== M release/datafiles/userdef/userdef_default_theme.c M release/scripts/presets/interface_theme/Blender_Light.xml M source/blender/blenloader/intern/versioning_userdef.c M source/blender/editors/include/UI_interface.h M source/blender/editors/interface/interface_templates.c M source/blender/editors/interface/interface_utils.c M source/blender/editors/interface/interface_widgets.c M source/blender/editors/space_info/info_draw.c M source/blender/editors/space_info/info_ops.c M source/blender/editors/space_info/textview.c =================================================================== diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c index 2754b7f06f8..0477b0c9f23 100644 --- a/release/datafiles/userdef/userdef_default_theme.c +++ b/release/datafiles/userdef/userdef_default_theme.c @@ -489,16 +489,17 @@ const bTheme U_theme_default = { .facedot_size = 4, .info_selected = RGBA(0x3b5689ff), .info_selected_text = RGBA(0xffffffff), - .info_error = RGBA(0xff613dff), + .info_error = RGBA(0xb34c34ff), .info_error_text = RGBA(0xffffffff), - .info_warning = RGBA(0xf5bc41ff), + .info_warning = RGBA(0xac8737ff), .info_warning_text = RGBA(0xffffffff), - .info_info = RGBA(0x1d4383ff), + .info_info = RGBA(0x1f3862ff), .info_info_text = RGBA(0xffffffff), - .info_debug = RGBA(0xd3d3d3ff), - .info_property = RGBA(0x3ace87ff), + .info_debug = RGBA(0x6b3293ff), + .info_debug_text = RGBA(0xffffffff), + .info_property = RGBA(0x329364ff), .info_property_text = RGBA(0xffffffff), - .info_operator = RGBA(0x3ace87ff), + .info_operator = RGBA(0x329364ff), .info_operator_text = RGBA(0xffffffff), }, .space_action = { diff --git a/release/scripts/presets/interface_theme/Blender_Light.xml b/release/scripts/presets/interface_theme/Blender_Light.xml index 91ccd574c31..77908bb6bbf 100644 --- a/release/scripts/presets/interface_theme/Blender_Light.xml +++ b/release/scripts/presets/interface_theme/Blender_Light.xml @@ -1053,19 +1053,19 @@ <info> <ThemeInfo info_selected="#6080ff" - info_selected_text="#ffffff" - info_error="#990000ff" - info_error_text="#ffffff" - info_warning="#b36a00ff" - info_warning_text="#ffffff" - info_info="#1d4383ff" - info_info_text="#ffffff" - info_debug="#d3d3d3ff" + info_selected_text="#000000" + info_error="#FF0038ff" + info_error_text="#000000" + info_warning="#FFE900ff" + info_warning_text="#000000" + info_info="#0068B3ff" + info_info_text="#000000" + info_debug="#B30095ff" info_debug_text="#000000" - info_property="#3ace87ff" - info_property_text="#ffffff" - info_operator="#3ace87ff" - info_operator_text="#ffffff" + info_property="#44B300ff" + info_property_text="#000000" + info_operator="#44B300ff" + info_operator_text="#000000" > <space> <ThemeSpaceGeneric diff --git a/source/blender/blenloader/intern/versioning_userdef.c b/source/blender/blenloader/intern/versioning_userdef.c index 04f8023351b..3d39181cd32 100644 --- a/source/blender/blenloader/intern/versioning_userdef.c +++ b/source/blender/blenloader/intern/versioning_userdef.c @@ -273,6 +273,15 @@ static void do_versions_theme(const UserDef *userdef, bTheme *btheme) { /* Keep this block, even when empty. */ FROM_DEFAULT_V4_UCHAR(space_properties.active); + + FROM_DEFAULT_V4_UCHAR(space_info.info_error); + FROM_DEFAULT_V4_UCHAR(space_info.info_warning); + FROM_DEFAULT_V4_UCHAR(space_info.info_info); + FROM_DEFAULT_V4_UCHAR(space_info.info_debug); + FROM_DEFAULT_V4_UCHAR(space_info.info_debug_text); + FROM_DEFAULT_V4_UCHAR(space_info.info_property); + FROM_DEFAULT_V4_UCHAR(space_info.info_error); + FROM_DEFAULT_V4_UCHAR(space_info.info_operator); } #undef FROM_DEFAULT_V4_UCHAR diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index bc053f60ca3..066d262cc44 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -1413,6 +1413,8 @@ enum { int UI_icon_from_id(struct ID *id); int UI_icon_from_report_type(int type); +int UI_icon_colorid_from_report_type(int type); +int UI_text_colorid_from_report_type(int type); int UI_icon_from_event_type(short event_type, short event_value); int UI_icon_from_keymap_item(const struct wmKeyMapItem *kmi, int r_icon_mod[4]); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index cf0c1444d4d..dad8253d101 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -6831,20 +6831,16 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C) width = min_ii((int)(rti->widthfac * width), width); width = max_ii(width, 10 * UI_DPI_FAC); - /* make a box around the report to make it stand out */ UI_block_align_begin(block); - but = uiDefBut( - block, UI_BTYPE_ROUNDBOX, 0, "", 0, 0, UI_UNIT_X + 5, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, ""); - /* set the report's bg color in but->col - UI_BTYPE_ROUNDBOX feature */ - rgba_float_to_uchar(but->col, rti->col); + /* Background for icon. */ but = uiDefBut(block, UI_BTYPE_ROUNDBOX, 0, "", - UI_UNIT_X + 5, 0, - UI_UNIT_X + width, + 0, + UI_UNIT_X + (6 * UI_DPI_FAC), UI_UNIT_Y, NULL, 0.0f, @@ -6852,46 +6848,57 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C) 0, 0, ""); - rgba_float_to_uchar(but->col, rti->col); + /* UI_BTYPE_ROUNDBOX's bg color is set in but->col. */ + UI_GetThemeColorType4ubv(UI_icon_colorid_from_report_type(report->type), SPACE_INFO, but->col); - UI_block_align_end(block); + /* Background for the rest of the message. */ + but = uiDefBut(block, + UI_BTYPE_ROUNDBOX, + 0, + "", + UI_UNIT_X + (6 * UI_DPI_FAC), + 0, + UI_UNIT_X + width, + UI_UNIT_Y, + NULL, + 0.0f, + 0.0f, + 0, + 0, + ""); - /* icon and report message on top */ - const int icon = UI_icon_from_report_type(report->type); + /* Use icon background at low opacity to highlight, but still contrasting with area TH_TEXT. */ + UI_GetThemeColorType4ubv(UI_icon_colorid_from_report_type(report->type), SPACE_INFO, but->col); + but->col[3] = 64; - /* XXX: temporary operator to dump all reports to a text block, but only if more than 1 report - * to be shown instead of icon when appropriate... - */ + UI_block_align_end(block); UI_block_emboss_set(block, UI_EMBOSS_NONE); - if (reports->list.first != reports->list.last) { - uiDefIconButO(block, - UI_BTYPE_BUT, - "SCREEN_OT_info_log_show", - WM_OP_INVOKE_REGION_WIN, - icon, - 2, - 0, - UI_UNIT_X, - UI_UNIT_Y, - TIP_("Click to see the remaining reports in text block: 'Recent Reports'")); - } - else { - uiDefIconBut( - block, UI_BTYPE_LABEL, 0, icon, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, ""); - } + /* The report icon itself. */ + but = uiDefIconButO(block, + UI_BTYPE_BUT, + "SCREEN_OT_info_log_show", + WM_OP_INVOKE_REGION_WIN, + UI_icon_from_report_type(report->type), + (3 * UI_DPI_FAC), + 0, + UI_UNIT_X, + UI_UNIT_Y, + TIP_("Click to see the remaining reports in text block: 'Recent Reports'")); + UI_GetThemeColorType4ubv(UI_text_colorid_from_report_type(report->type), SPACE_INFO, but->col); + but->col[3] = 255; /* This theme color is RBG only, so have to set alpha here. */ + /* The report message. */ but = uiDefButO(block, UI_BTYPE_BUT, "SCREEN_OT_info_log_show", WM_OP_INVOKE_REGION_WIN, report->message, - UI_UNIT_X + 5, + UI_UNIT_X, 0, - UI_UNIT_X + width, + width + UI_UNIT_X, UI_UNIT_Y, "Show in Info Log"); - rgba_float_to_uchar(but->col, rti->col); } void uiTemplateInputStatus(uiLayout *layout, struct bContext *C) diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index 958a0bc03cd..f9eba9eeb6f 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -544,15 +544,74 @@ int UI_icon_from_id(ID *id) int UI_icon_from_report_type(int type) { if (type & RPT_ERROR_ALL) { - return ICON_ERROR; + return ICON_CANCEL; } - if (type & RPT_WARNING_ALL) { + else if (type & RPT_WARNING_ALL) { return ICON_ERROR; } - if (type & RPT_INFO_ALL) { + else if (type & RPT_INFO_ALL) { return ICON_INFO; } - return ICON_NONE; + else if (type & RPT_DEBUG_ALL) { + return ICON_SYSTEM; + } + else if (type & RPT_PROPERTY) { + return ICON_OPTIONS; + } + else if (type & RPT_OPERATOR) { + return ICON_CHECKMARK; + } + return ICON_INFO; +} + +int UI_icon_colorid_from_report_type(int type) +{ + if (type & RPT_ERROR_ALL) { + return TH_INFO_ERROR; + } + else if (type & RPT_WARNING_ALL) { + return TH_INFO_WARNING; + } + else if (type & RPT_INFO_ALL) { + return TH_INFO_INFO; + } + else if (type & RPT_DEBUG_ALL) { + return TH_INFO_DEBUG; + } + else if (type & RPT_PROPERTY) { + return TH_INFO_PROPERTY; + } + else if (type & RPT_OPERATOR) { + return TH_INFO_OPERATOR; + } + else { + return TH_INFO_WARNING; + } +} + +int UI_text_colorid_from_report_type(int type) +{ + if (type & RPT_ERROR_ALL) { + return TH_INFO_ERROR_TEXT; + } + else if (type & RPT_WARNING_ALL) { + return TH_INFO_WARNING_TEXT; + } + else if (type & RPT_INFO_ALL) { + return TH_INFO_INFO_TEXT; + } + else if (type & RPT_DEBUG_ALL) { + return TH_INFO_DEBUG_TEXT; + } + else if (type & RPT_PROPERTY) { + return TH_INFO_PROPERTY_TEXT; + } + else if (type & RPT_OPERATOR) { + return TH_I @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list [email protected] https://lists.blender.org/mailman/listinfo/bf-blender-cvs
