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);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to