[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