[Bf-blender-cvs] [43dedae0296] soc-2019-outliner: Outliner: Cleanup active element

Nathan Craddock noreply at git.blender.org
Fri Jun 7 06:56:17 CEST 2019


Commit: 43dedae029652b6473060684342b040f2dff3e06
Author: Nathan Craddock
Date:   Thu Jun 6 21:56:20 2019 -0600
Branches: soc-2019-outliner
https://developer.blender.org/rB43dedae029652b6473060684342b040f2dff3e06

Outliner: Cleanup active element

After discussion with Campbell, I realized that some ways I was using
active elements did not fit with Blender's way of things. Like box select
making the root of the tree active if no active element existed. These
issues are fixed, in addition to using the already-present `active`
Theme struct member.

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

M	release/datafiles/userdef/userdef_default_theme.c
M	release/scripts/presets/interface_theme/blender_light.xml
M	source/blender/editors/interface/resources.c
M	source/blender/editors/space_outliner/outliner_select.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 43ca1483d14..c2d97114ffa 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -749,7 +749,7 @@ const bTheme U_theme_default = {
     .facedot_size = 4,
     .match = RGBA(0x337f334c),
     .selected_highlight = RGBA(0x314e784c),
-    .active_highlight = RGBA(0x59749d4c),
+    .active = RGBA(0x59749d4c),
     .selected_object = RGBA(0xe96a00ff),
     .active_object = RGBA(0xffaf29ff),
     .edited_object = RGBA(0x00806266),
diff --git a/release/scripts/presets/interface_theme/blender_light.xml b/release/scripts/presets/interface_theme/blender_light.xml
index 3b2a3a87408..34d5261c2b4 100644
--- a/release/scripts/presets/interface_theme/blender_light.xml
+++ b/release/scripts/presets/interface_theme/blender_light.xml
@@ -983,7 +983,7 @@
       <ThemeOutliner
         match="#337f33"
         selected_highlight="#7a8e99"
-        active_highlight="#92aab7"
+        active="#92aab7"
         selected_object="#ffddb3"
         active_object="#ffffff"
         edited_object="#0080624d"
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index c9fb4af7496..9271ad942a0 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -796,7 +796,7 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
           break;
 
         case TH_SELECT_ACTIVE:
-          cp = ts->active_highlight;
+          cp = ts->active;
           break;
 
         case TH_SELECTED_OBJECT:
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c
index 93a3c4f73c3..ed35f2a6d1e 100644
--- a/source/blender/editors/space_outliner/outliner_select.c
+++ b/source/blender/editors/space_outliner/outliner_select.c
@@ -1256,9 +1256,8 @@ static void do_outliner_range_select(SpaceOutliner *soops, TreeElement *cursor)
 
   outliner_flag_set(&soops->tree, TSE_SELECTED, false);
 
-  /* Once synced selection is implemented this check for active may not be needed */
   /* Range select requires the active element to be visible, so select if not visible */
-  if (!active || !outliner_is_element_visible(&soops->tree, active)) {
+  if (!outliner_is_element_visible(&soops->tree, active)) {
     TREESTORE(cursor)->flag |= TSE_SELECTED | TSE_ACTIVE;
     return;
   }
@@ -1454,12 +1453,6 @@ static int outliner_box_select_exec(bContext *C, wmOperator *op)
   WM_operator_properties_border_to_rctf(op, &rectf);
   UI_view2d_region_to_view_rctf(&ar->v2d, &rectf, &rectf);
 
-  /* Ensure one item is active (remove when sync selection) */
-  if (!outliner_find_active_element(&soops->tree)) {
-    TreeElement *te = soops->tree.first;
-    TREESTORE(te)->flag |= TSE_ACTIVE;
-  }
-
   for (TreeElement *te = soops->tree.first; te; te = te->next) {
     outliner_item_box_select(soops, scene, &rectf, te, select);
   }
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index a0bba29ed4d..3fbdbbb6afa 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -363,8 +363,6 @@ typedef struct ThemeSpace {
   char match[4];
   /** Outliner - selected item. */
   char selected_highlight[4];
-  /** Outliner - active item. */
-  char active_highlight[4];
   /** Outliner - selected object. */
   char selected_object[4];
   /** Outliner - active object. */
@@ -409,6 +407,8 @@ typedef struct ThemeSpace {
 
   char metadatabg[4];
   char metadatatext[4];
+
+  char _pad2[4];
 } ThemeSpace;
 
 /* set of colors for use as a custom color set for Objects/Bones wire drawing */
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index af3aab847c7..fc963101542 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -2289,7 +2289,7 @@ static void rna_def_userdef_theme_space_outliner(BlenderRNA *brna)
   RNA_def_property_ui_text(prop, "Selected Highlight", "");
   RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
 
-  prop = RNA_def_property(srna, "active_highlight", PROP_FLOAT, PROP_COLOR_GAMMA);
+  prop = RNA_def_property(srna, "active", PROP_FLOAT, PROP_COLOR_GAMMA);
   RNA_def_property_array(prop, 3);
   RNA_def_property_ui_text(prop, "Active Highlight", "");
   RNA_def_property_update(prop, 0, "rna_userdef_theme_update");



More information about the Bf-blender-cvs mailing list