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:
Ines Almeida
2018-07-28 22:58:33 +02:00
parent decd924116
commit f50fa4c5d6
3 changed files with 12 additions and 7 deletions

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);