[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35150] trunk/blender/source/blender/ editors/space_image/image_ops.c: bugfix #26211

M.G. Kishalmi lmg at kishalmi.net
Fri Feb 25 12:00:38 CET 2011


Revision: 35150
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35150
Author:   lmg
Date:     2011-02-25 11:00:38 +0000 (Fri, 25 Feb 2011)
Log Message:
-----------
bugfix #26211

render-result doesn't get an ibuf with BKE_image_get_ibuf
added a poll method to grey-out entries if !ibuf for now.

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

Modified: trunk/blender/source/blender/editors/space_image/image_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_ops.c	2011-02-25 10:58:04 UTC (rev 35149)
+++ trunk/blender/source/blender/editors/space_image/image_ops.c	2011-02-25 11:00:38 UTC (rev 35150)
@@ -1347,14 +1347,28 @@
 
 /********************* invert operators *********************/
 
-static int image_invert_exec(bContext *C, wmOperator *op) {
+static int image_invert_poll(bContext *C)
+{
 	Image *ima= CTX_data_edit_image(C);
 	ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL);
 	
+	if( ibuf != NULL )
+		return 1;
+	return 0;
+}
+
+static int image_invert_exec(bContext *C, wmOperator *op)
+{
+	Image *ima= CTX_data_edit_image(C);
+	ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL);
+	
 	// flags indicate if this channel should be inverted
 	short r,g,b,a;
 	int i, dirty = 0;
 	
+	if( ibuf == NULL) // TODO: this should actually never happen, but does for render-results -> cleanup
+		return OPERATOR_CANCELLED;
+	
 	r = RNA_boolean_get(op->ptr, "invert_r");
 	g = RNA_boolean_get(op->ptr, "invert_g");
 	b = RNA_boolean_get(op->ptr, "invert_b");
@@ -1394,13 +1408,15 @@
 	
 }
 
-void IMAGE_OT_invert(wmOperatorType *ot) {
+void IMAGE_OT_invert(wmOperatorType *ot)
+{
 	/* identifiers */
 	ot->name= "Invert Channels";
 	ot->idname= "IMAGE_OT_invert";
 	
 	/* api callbacks */
 	ot->exec= image_invert_exec;
+	ot->poll= image_invert_poll;
 	
 	/* properties */
 	RNA_def_boolean(ot->srna, "invert_r", 0, "Red", "Invert Red Channel");




More information about the Bf-blender-cvs mailing list