[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23751] trunk/blender/source/blender/ editors/space_image: Add reload button for image textures.

Brecht Van Lommel brecht at blender.org
Sat Oct 10 00:00:33 CEST 2009


Revision: 23751
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23751
Author:   blendix
Date:     2009-10-10 00:00:33 +0200 (Sat, 10 Oct 2009)

Log Message:
-----------
Add reload button for image textures.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_image/image_buttons.c
    trunk/blender/source/blender/editors/space_image/image_ops.c

Modified: trunk/blender/source/blender/editors/space_image/image_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_buttons.c	2009-10-09 21:50:33 UTC (rev 23750)
+++ trunk/blender/source/blender/editors/space_image/image_buttons.c	2009-10-09 22:00:33 UTC (rev 23751)
@@ -943,6 +943,8 @@
 	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 @@
 			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?

Modified: trunk/blender/source/blender/editors/space_image/image_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_ops.c	2009-10-09 21:50:33 UTC (rev 23750)
+++ trunk/blender/source/blender/editors/space_image/image_ops.c	2009-10-09 22:00:33 UTC (rev 23751)
@@ -108,6 +108,11 @@
 	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 @@
 
 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 */
-	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 @@
 	
 	/* api callbacks */
 	ot->exec= reload_exec;
-	ot->poll= space_image_poll;
+	ot->poll= image_poll;
 
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;





More information about the Bf-blender-cvs mailing list