Fix T56120: Crash on "Install Matcap, World or Camera HDRI"

Code was trying to hide properties by name that may not exist.
Check if it was actually found and add 'files' to the filter,
since it is what WM_OT_studio_lights_install uses.
This commit is contained in:
Inês Almeida 2018-07-28 22:58:33 +02:00
parent decd924116
commit f50fa4c5d6
Notes: blender-bot 2023-02-14 06:57:56 +01:00
Referenced by issue #56138, Movie Clip Node Crash
Referenced by issue #56120, Crash on "Import ..."  any light type (matcap, world hdri, env hdri)
Referenced by issue #55727, Crashes when "s" is pressed while dragging 3d cursor
Referenced by issue #55475, Crash due to zero uniform buffer binding for sssProfile
3 changed files with 12 additions and 7 deletions

@ -1 +1 @@
Subproject commit ebd058d7a6438d137522063bb3286c8acc325ca6
Subproject commit c87ee4d46f16d60a2e1db7514c8d5ab42c5d93df

@ -1 +1 @@
Subproject commit 474702157831f1a58bb50f5240ab8b1b02b6ba37
Subproject commit 15b25a42783d1e516b5298d70b582fae2559ae17

View File

@ -80,19 +80,24 @@ static void file_panel_operator(const bContext *C, Panel *pa)
UI_block_func_set(uiLayoutGetBlock(pa->layout), file_draw_check_cb, NULL, NULL);
/* Hack: temporary hide.*/
const char *hide[3] = {"filepath", "directory", "filename"};
const char *hide[4] = {"filepath", "files", "directory", "filename"};
for (int i = 0; i < ARRAY_SIZE(hide); i++) {
PropertyRNA *prop = RNA_struct_find_property(op->ptr, "filepath");
RNA_def_property_flag(prop, PROP_HIDDEN);
PropertyRNA *prop = RNA_struct_find_property(op->ptr, hide[i]);
if (prop) {
RNA_def_property_flag(prop, PROP_HIDDEN);
}
}
uiTemplateOperatorPropertyButs(
C, pa->layout, op, UI_BUT_LABEL_ALIGN_NONE,
UI_TEMPLATE_OP_PROPS_SHOW_EMPTY);
/* Hack: temporary hide.*/
for (int i = 0; i < ARRAY_SIZE(hide); i++) {
PropertyRNA *prop = RNA_struct_find_property(op->ptr, "filepath");
RNA_def_property_clear_flag(prop, PROP_HIDDEN);
PropertyRNA *prop = RNA_struct_find_property(op->ptr, hide[i]);
if (prop) {
RNA_def_property_clear_flag(prop, PROP_HIDDEN);
}
}
UI_block_func_set(uiLayoutGetBlock(pa->layout), NULL, NULL, NULL);