[Bf-blender-cvs] [694bc4d040a] master: Fix for T84038: Improved Report Warnings

Harley Acheson noreply at git.blender.org
Mon Feb 8 17:20:21 CET 2021


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. @@



More information about the Bf-blender-cvs mailing list