[Bf-blender-cvs] [5355e9e6031] temp-spreadsheet-row-filter: Move "Selection Only" to the editor header

Hans Goudey noreply at git.blender.org
Wed Jun 16 05:13:35 CEST 2021


Commit: 5355e9e6031184c599a13d42c531e90dd7978f43
Author: Hans Goudey
Date:   Tue Jun 15 21:56:56 2021 -0500
Branches: temp-spreadsheet-row-filter
https://developer.blender.org/rB5355e9e6031184c599a13d42c531e90dd7978f43

Move "Selection Only" to the editor header

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

M	release/scripts/startup/bl_ui/space_spreadsheet.py
M	source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc
M	source/blender/makesrna/intern/rna_space.c

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

diff --git a/release/scripts/startup/bl_ui/space_spreadsheet.py b/release/scripts/startup/bl_ui/space_spreadsheet.py
index 4afafd91bb3..e812f2c6f0b 100644
--- a/release/scripts/startup/bl_ui/space_spreadsheet.py
+++ b/release/scripts/startup/bl_ui/space_spreadsheet.py
@@ -59,8 +59,12 @@ class SPREADSHEET_HT_header(bpy.types.Header):
         layout.operator("spreadsheet.toggle_pin", text="", icon=pin_icon, emboss=False)
 
         layout.separator_spacer()
-
-        layout.prop(space, "use_filter", toggle=True, icon='FILTER', icon_only=True)
+        
+        row = layout.row(align=True)
+        sub = row.row(align=True)
+        sub.active = self.selection_filter_enabled(space)
+        sub.prop(space, "show_only_selected", text="")
+        row.prop(space, "use_filter", toggle=True, icon='FILTER', icon_only=True)
 
     def draw_without_context_path(self, layout):
         layout.label(text="No active context")
@@ -101,6 +105,17 @@ class SPREADSHEET_HT_header(bpy.types.Header):
     def draw_spreadsheet_context_path_icon(self, layout, space, icon='RIGHTARROW_THIN'):
         layout.prop(space, "display_context_path_collapsed", icon_only=True, emboss=False, icon=icon)
 
+    def selection_filter_enabled(self, space):
+        root_context = space.context_path[0]
+        if root_context.type != 'OBJECT':
+            return False
+        obj = root_context.object
+        if obj is None:
+            return False
+        if obj.type != 'MESH' or obj.mode != 'EDIT':
+            return False
+        return True
+
 classes = (
     SPREADSHEET_HT_header,
 )
diff --git a/source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc b/source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc
index 927783b41f5..39a3b7325ee 100644
--- a/source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc
+++ b/source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc
@@ -134,12 +134,11 @@ static void spreadsheet_filter_panel_draw_header(const bContext *C, Panel *panel
   PointerRNA *filter_ptr = UI_panel_custom_data_get(panel);
   SpreadsheetRowFilter *filter = (SpreadsheetRowFilter *)filter_ptr->data;
   const StringRef column_name = filter->column_name;
-  const eSpreadsheetFilterOperation operation = (const eSpreadsheetFilterOperation)
-                                                    filter->operation;
+  const eSpreadsheetFilterOperation operation = (eSpreadsheetFilterOperation)filter->operation;
 
   const SpreadsheetColumn *column = lookup_visible_column_for_filter(*sspreadsheet, column_name);
   if (!(sspreadsheet->filter_flag & SPREADSHEET_FILTER_ENABLE) ||
-      column == nullptr && !column_name.is_empty()) {
+      (column == nullptr && !column_name.is_empty())) {
     uiLayoutSetActive(layout, false);
   }
   if (column != nullptr) {
@@ -253,10 +252,6 @@ static void spreadsheet_row_filters_layout(const bContext *C, Panel *panel)
   SpaceSpreadsheet *sspreadsheet = CTX_wm_space_spreadsheet(C);
   ListBase *row_filters = &sspreadsheet->row_filters;
 
-  PointerRNA sspreadsheet_ptr;
-  RNA_pointer_create(&screen->id, &RNA_SpaceSpreadsheet, sspreadsheet, &sspreadsheet_ptr);
-  uiItemR(layout, &sspreadsheet_ptr, "show_only_selected", 0, IFACE_("Selected Only"), ICON_NONE);
-
   if (!(sspreadsheet->filter_flag & SPREADSHEET_FILTER_ENABLE)) {
     uiLayoutSetActive(layout, false);
   }
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 478d501ca5b..7c1924d6756 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -7696,6 +7696,7 @@ static void rna_def_space_spreadsheet(BlenderRNA *brna)
   RNA_def_property_boolean_sdna(prop, NULL, "filter_flag", SPREADSHEET_FILTER_SELECTED_ONLY);
   RNA_def_property_ui_text(
       prop, "Show Only Selected", "Only include rows that correspond to selected elements");
+  RNA_def_property_ui_icon(prop, ICON_RESTRICT_SELECT_OFF, 0);
   RNA_def_property_update(prop, NC_SPACE | ND_SPACE_SPREADSHEET, NULL);
 
   prop = RNA_def_property(srna, "geometry_component_type", PROP_ENUM, PROP_NONE);



More information about the Bf-blender-cvs mailing list