[Bf-blender-cvs] [f1ebcfeef94] temp-spreadsheet-row-filter: Gray out row filters if the flag is turned off
Hans Goudey
noreply at git.blender.org
Wed Jun 16 05:13:34 CEST 2021
Commit: f1ebcfeef9428d703c15a2ecb7d076cc1406ce88
Author: Hans Goudey
Date: Tue Jun 15 21:41:55 2021 -0500
Branches: temp-spreadsheet-row-filter
https://developer.blender.org/rBf1ebcfeef9428d703c15a2ecb7d076cc1406ce88
Gray out row filters if the flag is turned off
===================================================================
M source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc
===================================================================
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 e272f5a9121..927783b41f5 100644
--- a/source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc
+++ b/source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc
@@ -138,7 +138,8 @@ static void spreadsheet_filter_panel_draw_header(const bContext *C, Panel *panel
filter->operation;
const SpreadsheetColumn *column = lookup_visible_column_for_filter(*sspreadsheet, column_name);
- if (column == nullptr && !column_name.is_empty()) {
+ if (!(sspreadsheet->filter_flag & SPREADSHEET_FILTER_ENABLE) ||
+ column == nullptr && !column_name.is_empty()) {
uiLayoutSetActive(layout, false);
}
if (column != nullptr) {
@@ -183,22 +184,28 @@ static void spreadsheet_filter_panel_draw(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 (!(filter->flag & SPREADSHEET_ROW_FILTER_ENABLED) ||
+ if (!(sspreadsheet->filter_flag & SPREADSHEET_FILTER_ENABLE) ||
+ !(filter->flag & SPREADSHEET_ROW_FILTER_ENABLED) ||
(column == nullptr && !column_name.is_empty())) {
uiLayoutSetActive(layout, false);
}
- const eSpreadsheetColumnValueType data_type = static_cast<eSpreadsheetColumnValueType>(
- filter->last_data_type);
uiLayoutSetPropSep(layout, true);
uiLayoutSetPropDecorate(layout, false);
uiItemR(layout, filter_ptr, "column_name", 0, IFACE_("Column"), ICON_NONE);
+ /* Don't draw settings for filters with no corresponding visible column. */
+ if (column == nullptr || column_name.is_empty()) {
+ return;
+ }
+
+ const eSpreadsheetColumnValueType data_type = static_cast<eSpreadsheetColumnValueType>(
+ filter->last_data_type);
+
switch (data_type) {
case SPREADSHEET_VALUE_TYPE_INT32:
uiItemR(layout, filter_ptr, "operation", 0, nullptr, ICON_NONE);
@@ -250,6 +257,10 @@ static void spreadsheet_row_filters_layout(const bContext *C, Panel *panel)
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);
+ }
+
uiItemO(layout, nullptr, ICON_ADD, "SPREADSHEET_OT_add_row_filter_rule");
const bool panels_match = UI_panel_list_matches_data(region, row_filters, filter_panel_id_fn);
More information about the Bf-blender-cvs
mailing list