Add reload button for image textures.
This commit is contained in:
@@ -943,6 +943,8 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
|
|||||||
cb->prop= prop;
|
cb->prop= prop;
|
||||||
cb->iuser= iuser;
|
cb->iuser= iuser;
|
||||||
|
|
||||||
|
uiLayoutSetContextPointer(layout, "edit_image", &imaptr);
|
||||||
|
|
||||||
if(!compact)
|
if(!compact)
|
||||||
uiTemplateID(layout, C, ptr, propname, "IMAGE_OT_new", "IMAGE_OT_open", NULL);
|
uiTemplateID(layout, C, ptr, propname, "IMAGE_OT_new", "IMAGE_OT_open", NULL);
|
||||||
|
|
||||||
@@ -992,9 +994,9 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
|
|||||||
uiItemR(row, NULL, 0, &imaptr, "source", (compact)? 0: UI_ITEM_R_EXPAND);
|
uiItemR(row, NULL, 0, &imaptr, "source", (compact)? 0: UI_ITEM_R_EXPAND);
|
||||||
|
|
||||||
if(ima->source != IMA_SRC_GENERATED) {
|
if(ima->source != IMA_SRC_GENERATED) {
|
||||||
row= uiLayoutRow(layout, 0);
|
row= uiLayoutRow(layout, 1);
|
||||||
uiItemR(row, "", 0, &imaptr, "filename", 0);
|
uiItemR(row, "", 0, &imaptr, "filename", 0);
|
||||||
//uiItemO(row, "Reload", 0, "image.reload");
|
uiItemO(row, "", ICON_FILE_REFRESH, "image.reload");
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX what was this for?
|
// XXX what was this for?
|
||||||
|
|||||||
@@ -108,6 +108,11 @@ static void sima_zoom_set_factor(SpaceImage *sima, ARegion *ar, float zoomfac)
|
|||||||
sima_zoom_set(sima, ar, sima->zoom*zoomfac);
|
sima_zoom_set(sima, ar, sima->zoom*zoomfac);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int image_poll(bContext *C)
|
||||||
|
{
|
||||||
|
return (CTX_data_edit_image(C) != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static int space_image_poll(bContext *C)
|
static int space_image_poll(bContext *C)
|
||||||
{
|
{
|
||||||
SpaceImage *sima= CTX_wm_space_image(C);
|
SpaceImage *sima= CTX_wm_space_image(C);
|
||||||
@@ -1070,19 +1075,16 @@ void IMAGE_OT_save_sequence(wmOperatorType *ot)
|
|||||||
|
|
||||||
static int reload_exec(bContext *C, wmOperator *op)
|
static int reload_exec(bContext *C, wmOperator *op)
|
||||||
{
|
{
|
||||||
SpaceImage *sima;
|
Image *ima= CTX_data_edit_image(C);
|
||||||
|
SpaceImage *sima= CTX_wm_space_image(C);
|
||||||
|
|
||||||
/* retrieve state */
|
if(!ima)
|
||||||
sima= CTX_wm_space_image(C);
|
|
||||||
|
|
||||||
if(!sima->image)
|
|
||||||
return OPERATOR_CANCELLED;
|
return OPERATOR_CANCELLED;
|
||||||
|
|
||||||
BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_RELOAD);
|
// XXX other users?
|
||||||
/* ED_space_image_set(C, sima, scene, obedit, NULL); - do we really need this? */
|
BKE_image_signal(ima, (sima)? &sima->iuser: NULL, IMA_SIGNAL_RELOAD);
|
||||||
|
|
||||||
// XXX BIF_preview_changed(ID_TE);
|
WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
|
||||||
WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, sima->image);
|
|
||||||
ED_area_tag_redraw(CTX_wm_area(C));
|
ED_area_tag_redraw(CTX_wm_area(C));
|
||||||
|
|
||||||
return OPERATOR_FINISHED;
|
return OPERATOR_FINISHED;
|
||||||
@@ -1096,7 +1098,7 @@ void IMAGE_OT_reload(wmOperatorType *ot)
|
|||||||
|
|
||||||
/* api callbacks */
|
/* api callbacks */
|
||||||
ot->exec= reload_exec;
|
ot->exec= reload_exec;
|
||||||
ot->poll= space_image_poll;
|
ot->poll= image_poll;
|
||||||
|
|
||||||
/* flags */
|
/* flags */
|
||||||
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
|
||||||
|
|||||||
Reference in New Issue
Block a user