diff options
author | Hans Goudey <h.goudey@me.com> | 2021-06-16 06:12:50 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-06-16 06:12:50 +0300 |
commit | 1fbdf19ee20b6cb1412746d5e2337b22942e39a7 (patch) | |
tree | 03f8a175ec7d8bdc8813ff8623603b7b21bca743 | |
parent | 5355e9e6031184c599a13d42c531e90dd7978f43 (diff) |
Remove "Last Data Type" hacktemp-spreadsheet-row-filter
-rw-r--r-- | source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc | 19 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_space_types.h | 10 |
2 files changed, 7 insertions, 22 deletions
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 39a3b7325ee..0d5de15805b 100644 --- a/source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc +++ b/source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc @@ -132,7 +132,7 @@ static void spreadsheet_filter_panel_draw_header(const bContext *C, Panel *panel uiLayout *layout = panel->layout; SpaceSpreadsheet *sspreadsheet = CTX_wm_space_spreadsheet(C); PointerRNA *filter_ptr = UI_panel_custom_data_get(panel); - SpreadsheetRowFilter *filter = (SpreadsheetRowFilter *)filter_ptr->data; + const SpreadsheetRowFilter *filter = (SpreadsheetRowFilter *)filter_ptr->data; const StringRef column_name = filter->column_name; const eSpreadsheetFilterOperation operation = (eSpreadsheetFilterOperation)filter->operation; @@ -141,14 +141,6 @@ static void spreadsheet_filter_panel_draw_header(const bContext *C, Panel *panel (column == nullptr && !column_name.is_empty())) { uiLayoutSetActive(layout, false); } - if (column != nullptr) { - /* Set the cache of the last data type in the row filter. Two notes: - * - Changing data during drawing can be dangerous and should be done with care. - * - We only need to do this once in the header, since it is always drawn. */ - filter->last_data_type = column->data_type; - } - const eSpreadsheetColumnValueType data_type = static_cast<eSpreadsheetColumnValueType>( - filter->last_data_type); uiLayout *row = uiLayoutRow(layout, true); uiLayoutSetEmboss(row, UI_EMBOSS_NONE); @@ -157,7 +149,11 @@ static void spreadsheet_filter_panel_draw_header(const bContext *C, Panel *panel if (column_name.is_empty()) { uiItemL(row, IFACE_("Filter"), ICON_NONE); } + else if (column == nullptr) { + uiItemL(row, column_name.data(), ICON_NONE); + } else { + const eSpreadsheetColumnValueType data_type = (eSpreadsheetColumnValueType)column->data_type; std::stringstream ss; ss << column_name; ss << " "; @@ -202,10 +198,7 @@ static void spreadsheet_filter_panel_draw(const bContext *C, Panel *panel) return; } - const eSpreadsheetColumnValueType data_type = static_cast<eSpreadsheetColumnValueType>( - filter->last_data_type); - - switch (data_type) { + switch (static_cast<eSpreadsheetColumnValueType>(column->data_type)) { case SPREADSHEET_VALUE_TYPE_INT32: uiItemR(layout, filter_ptr, "operation", 0, nullptr, ICON_NONE); uiItemR(layout, filter_ptr, "value_int", 0, IFACE_("Value"), ICON_NONE); diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 56254fbfbfe..7804ece9769 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -1974,15 +1974,7 @@ typedef struct SpreadsheetRowFilter { /* eSpaceSpreadsheet_RowFilterFlag. */ uint8_t flag; - /** - * The data type of the last visible column with a corresponding display name. This is set at - * runtime, in order to "remember" the data type so the row filter can display the settings for - * the correct data type even if the data source is temporarily gone. - * #eSpreadsheetColumnValueType. - */ - uint8_t last_data_type; - - char _pad0[1]; + char _pad0[2]; int value_int; char *value_string; |