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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-10-10 02:00:33 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-10-10 02:00:33 +0400
commit578bb93ada1c9d6e6e158149ba2cb0926ce1ea6c (patch)
treed2772e1421b14be7e191687354b385ea6772992e /source/blender/editors/space_image
parentca77d6dabb0c9fba7f5862cc09294fc82bdd795a (diff)
Add reload button for image textures.
Diffstat (limited to 'source/blender/editors/space_image')
-rw-r--r--source/blender/editors/space_image/image_buttons.c6
-rw-r--r--source/blender/editors/space_image/image_ops.c22
2 files changed, 16 insertions, 12 deletions
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c
index e2990a6d919..87b6ec8bb71 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -943,6 +943,8 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
cb->prop= prop;
cb->iuser= iuser;
+ uiLayoutSetContextPointer(layout, "edit_image", &imaptr);
+
if(!compact)
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);
if(ima->source != IMA_SRC_GENERATED) {
- row= uiLayoutRow(layout, 0);
+ row= uiLayoutRow(layout, 1);
uiItemR(row, "", 0, &imaptr, "filename", 0);
- //uiItemO(row, "Reload", 0, "image.reload");
+ uiItemO(row, "", ICON_FILE_REFRESH, "image.reload");
}
// XXX what was this for?
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index d5bd736f307..482750e5b2e 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -108,6 +108,11 @@ static void sima_zoom_set_factor(SpaceImage *sima, ARegion *ar, float 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)
{
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)
{
- SpaceImage *sima;
-
- /* retrieve state */
- sima= CTX_wm_space_image(C);
+ Image *ima= CTX_data_edit_image(C);
+ SpaceImage *sima= CTX_wm_space_image(C);
- if(!sima->image)
+ if(!ima)
return OPERATOR_CANCELLED;
- BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_RELOAD);
- /* ED_space_image_set(C, sima, scene, obedit, NULL); - do we really need this? */
+ // XXX other users?
+ 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, sima->image);
+ WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
@@ -1096,7 +1098,7 @@ void IMAGE_OT_reload(wmOperatorType *ot)
/* api callbacks */
ot->exec= reload_exec;
- ot->poll= space_image_poll;
+ ot->poll= image_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;