diff options
author | Andrea Weikert <elubie@gmx.net> | 2014-01-20 21:54:03 +0400 |
---|---|---|
committer | Andrea Weikert <elubie@gmx.net> | 2014-01-20 22:13:21 +0400 |
commit | 04f81c8225f28ba9722cc06dc7f2d8a4d72a3fa3 (patch) | |
tree | 8be3afae34e9682dc5a7014454712ca93e89b56f /source/blender/editors/space_node | |
parent | 4c6a72a7d8102b93307c13eedd81ecf0c6051d8b (diff) |
Fix T37481: Image Sequence can't be loaded
Allow loading of image sequences in addition to single images in the open image operator
I solved it by adding the possibility to load an image sequence in the Load Image Operator.
The image user is passed in the operator customdata now as well, best solution for now, but general handling of image user still a bit weak. The offset and length of the image sequence is now calculated in the image open operator by storing all found frames in a list and sorting this list.
Reviewed By: campbellbarton, brecht, lukastoenne
Differential Revision: https://developer.blender.org/D209
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r-- | source/blender/editors/space_node/drawnode.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index c30c4fe9ada..e8547b7c164 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -659,6 +659,8 @@ static void node_buts_image_user(uiLayout *layout, bContext *C, PointerRNA *ptr, /* don't use iuser->framenr directly because it may not be updated if auto-refresh is off */ Scene *scene = CTX_data_scene(C); ImageUser *iuser = iuserptr->data; + Image *ima = imaptr->data; + char numstr[32]; const int framenr = BKE_image_user_frame_get(iuser, CFRA, 0, NULL); BLI_snprintf(numstr, sizeof(numstr), IFACE_("Frame: %d"), framenr); @@ -773,6 +775,7 @@ static void node_shader_buts_tex_image(uiLayout *layout, bContext *C, PointerRNA PointerRNA imaptr = RNA_pointer_get(ptr, "image"); PointerRNA iuserptr = RNA_pointer_get(ptr, "image_user"); + uiLayoutSetContextPointer(layout, "image_user", &iuserptr); uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL); uiItemR(layout, ptr, "color_space", 0, "", ICON_NONE); uiItemR(layout, ptr, "projection", 0, "", ICON_NONE); @@ -798,6 +801,7 @@ static void node_shader_buts_tex_environment(uiLayout *layout, bContext *C, Poin PointerRNA imaptr = RNA_pointer_get(ptr, "image"); PointerRNA iuserptr = RNA_pointer_get(ptr, "image_user"); + uiLayoutSetContextPointer(layout, "image_user", &iuserptr); uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL); uiItemR(layout, ptr, "color_space", 0, "", ICON_NONE); uiItemR(layout, ptr, "projection", 0, "", ICON_NONE); @@ -1103,13 +1107,13 @@ static void node_composit_buts_image(uiLayout *layout, bContext *C, PointerRNA * bNode *node = ptr->data; PointerRNA imaptr, iuserptr; + RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr); + uiLayoutSetContextPointer(layout, "image_user", &iuserptr); uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL); - if (!node->id) return; imaptr = RNA_pointer_get(ptr, "image"); - RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr); - + node_buts_image_user(layout, C, ptr, &imaptr, &iuserptr); } @@ -1119,6 +1123,7 @@ static void node_composit_buts_image_ex(uiLayout *layout, bContext *C, PointerRN PointerRNA iuserptr; RNA_pointer_create((ID *)ptr->id.data, &RNA_ImageUser, node->storage, &iuserptr); + uiLayoutSetContextPointer(layout, "image_user", &iuserptr); uiTemplateImage(layout, C, ptr, "image", &iuserptr, 0); } |