[Bf-blender-cvs] [28a72c63f1e] soc-2020-info-editor: UI: indicate active report in info editor

Mateusz Grzeliński noreply at git.blender.org
Sat Jun 6 23:57:56 CEST 2020


Commit: 28a72c63f1e8c97fa55f8d2b4d5b8fa813580bb6
Author: Mateusz Grzeliński
Date:   Sat Jun 6 21:31:57 2020 +0200
Branches: soc-2020-info-editor
https://developer.blender.org/rB28a72c63f1e8c97fa55f8d2b4d5b8fa813580bb6

UI: indicate active report in info editor

- use the same color scheme as outliner
- no not show zebra in selected reports (be consistent with outliner)
- add new info_active (report) theme setting

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

M	release/datafiles/userdef/userdef_default_theme.c
M	source/blender/editors/include/UI_resources.h
M	source/blender/editors/interface/resources.c
M	source/blender/editors/space_info/info_draw.c
M	source/blender/makesdna/DNA_userdef_types.h
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 4d48bb8eaac..3f81e230a57 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -483,7 +483,8 @@ const bTheme U_theme_default = {
     .vertex_size = 3,
     .outline_width = 1,
     .facedot_size = 4,
-    .info_selected = RGBA(0x3b5689ff),
+    .info_selected = RGBA(0x223A5Bff),
+    .info_active = RGBA(0x3B5689ff),
     .info_selected_text = RGBA(0xffffffff),
     .info_error = RGBA(0xff613dff),
     .info_error_text = RGBA(0xffffffff),
diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h
index c5c4ca79f14..c26df3a75e3 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -326,6 +326,7 @@ typedef enum ThemeColorID {
   TH_BACKGROUND_TYPE,
 
   TH_INFO_SELECTED,
+  TH_INFO_ACTIVE,
   TH_INFO_SELECTED_TEXT,
   TH_INFO_ERROR,
   TH_INFO_ERROR_TEXT,
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 01c9716ec86..78c4caa6937 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -974,6 +974,9 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
         case TH_INFO_SELECTED:
           cp = ts->info_selected;
           break;
+        case TH_INFO_ACTIVE:
+          cp = ts->info_active;
+          break;
         case TH_INFO_SELECTED_TEXT:
           cp = ts->info_selected_text;
           break;
diff --git a/source/blender/editors/space_info/info_draw.c b/source/blender/editors/space_info/info_draw.c
index 3685e5de852..1ea660f3886 100644
--- a/source/blender/editors/space_info/info_draw.c
+++ b/source/blender/editors/space_info/info_draw.c
@@ -21,6 +21,7 @@
  * \ingroup spinfo
  */
 
+#include <BLI_blenlib.h>
 #include <limits.h>
 #include <string.h>
 
@@ -47,13 +48,24 @@ static enum eTextViewContext_LineFlag report_line_data(TextViewContext *tvc,
                                                        uchar r_icon_bg[4])
 {
   const Report *report = tvc->iter;
+  const SpaceInfo *sinfo = tvc->arg1;
+  const ReportList *reports = tvc->arg2;
+  const Report *active_report = BLI_findlink((const struct ListBase *)reports,
+                                             sinfo->active_report_index);
 
   /* Same text color no matter what type of report. */
   UI_GetThemeColor4ubv((report->flag & SELECT) ? TH_INFO_SELECTED_TEXT : TH_TEXT, fg);
 
-  /* Zebra striping for background. */
-  int bg_id = (report->flag & SELECT) ? TH_INFO_SELECTED : TH_BACK;
-  int shade = (tvc->iter_tmp % 2) ? 4 : -4;
+  /* Zebra striping for background, only for deselected reports. */
+  int bg_id, shade;
+  if (report->flag & SELECT) {
+    bg_id = (report == active_report) ? TH_INFO_ACTIVE : TH_INFO_SELECTED;
+    shade = 0;
+  }
+  else {
+    bg_id = TH_BACK;
+    shade = (tvc->iter_tmp % 2) ? 4 : -4;
+  }
   UI_GetThemeColorShade4ubv(bg_id, shade, bg);
 
   /* Icon color and backgound depend of report type. */
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index 63e7a90547e..5d3207116e5 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -415,7 +415,7 @@ typedef struct ThemeSpace {
   unsigned char nla_sound[4], nla_sound_sel[4];
 
   /* info */
-  unsigned char info_selected[4], info_selected_text[4];
+  unsigned char info_selected[4], info_active[4], info_selected_text[4];
   unsigned char info_error[4], info_error_text[4];
   unsigned char info_warning[4], info_warning_text[4];
   unsigned char info_info[4], info_info_text[4];
@@ -428,6 +428,7 @@ typedef struct ThemeSpace {
 
   unsigned char metadatabg[4];
   unsigned char metadatatext[4];
+  char _pad2[4];
 
 } ThemeSpace;
 
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 49a0121dadb..41c41a0dc93 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -2605,6 +2605,11 @@ static void rna_def_userdef_theme_space_info(BlenderRNA *brna)
   RNA_def_property_ui_text(prop, "Selected Line Background", "Background color of selected line");
   RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
 
+  prop = RNA_def_property(srna, "info_active", PROP_FLOAT, PROP_COLOR_GAMMA);
+  RNA_def_property_array(prop, 3);
+  RNA_def_property_ui_text(prop, "Active Line Background", "Background color of active line");
+  RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+
   prop = RNA_def_property(srna, "info_selected_text", PROP_FLOAT, PROP_COLOR_GAMMA);
   RNA_def_property_array(prop, 3);
   RNA_def_property_ui_text(prop, "Selected Line Text Color", "Text color of selected line");



More information about the Bf-blender-cvs mailing list