Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2021-06-16 06:12:50 +0300
committerHans Goudey <h.goudey@me.com>2021-06-16 06:12:50 +0300
commit1fbdf19ee20b6cb1412746d5e2337b22942e39a7 (patch)
tree03f8a175ec7d8bdc8813ff8623603b7b21bca743
parent5355e9e6031184c599a13d42c531e90dd7978f43 (diff)
Remove "Last Data Type" hacktemp-spreadsheet-row-filter
-rw-r--r--source/blender/editors/space_spreadsheet/spreadsheet_row_filter_ui.cc19
-rw-r--r--source/blender/makesdna/DNA_space_types.h10
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;