adjustments to recent commit:

* inv_ -> inverted_
* flagged image dirty after invert.
* restored properties accidently cut out of unpack operator.

brecht.beers[lmg]++
 thanks for paying attention! :)
This commit is contained in:
2011-02-23 19:40:24 +00:00
parent 3bee6abb74
commit 2158d05866
2 changed files with 23 additions and 16 deletions

View File

@@ -158,23 +158,23 @@ class IMAGE_MT_image_invert(bpy.types.Menu):
layout = self.layout layout = self.layout
op = layout.operator("image.invert", text="Invert Image Colors"); op = layout.operator("image.invert", text="Invert Image Colors");
op.inv_r = True; op.invert_r = True;
op.inv_g = True; op.invert_g = True;
op.inv_b = True; op.invert_b = True;
layout.separator() layout.separator()
op = layout.operator("image.invert", text="Invert Red Channel"); op = layout.operator("image.invert", text="Invert Red Channel");
op.inv_r = True; op.invert_r = True;
op = layout.operator("image.invert", text="Invert Green Channel"); op = layout.operator("image.invert", text="Invert Green Channel");
op.inv_g = True; op.invert_g = True;
op = layout.operator("image.invert", text="Invert Blue Channel"); op = layout.operator("image.invert", text="Invert Blue Channel");
op.inv_b = True; op.invert_b = True;
op = layout.operator("image.invert", text="Invert Alpha Channel"); op = layout.operator("image.invert", text="Invert Alpha Channel");
op.inv_a = True; op.invert_a = True;
class IMAGE_MT_uvs_showhide(bpy.types.Menu): class IMAGE_MT_uvs_showhide(bpy.types.Menu):

View File

@@ -1353,12 +1353,12 @@ static int image_invert_exec(bContext *C, wmOperator *op) {
// flags indicate if this channel should be inverted // flags indicate if this channel should be inverted
short r,g,b,a; short r,g,b,a;
int i; int i, dirty = 0;
r = RNA_boolean_get(op->ptr, "inv_r"); r = RNA_boolean_get(op->ptr, "invert_r");
g = RNA_boolean_get(op->ptr, "inv_g"); g = RNA_boolean_get(op->ptr, "invert_g");
b = RNA_boolean_get(op->ptr, "inv_b"); b = RNA_boolean_get(op->ptr, "invert_b");
a = RNA_boolean_get(op->ptr, "inv_a"); a = RNA_boolean_get(op->ptr, "invert_a");
/* TODO: make this into an IMB_invert_channels(ibuf,r,g,b,a) method!? */ /* TODO: make this into an IMB_invert_channels(ibuf,r,g,b,a) method!? */
if (ibuf->rect_float) { if (ibuf->rect_float) {
@@ -1370,6 +1370,7 @@ static int image_invert_exec(bContext *C, wmOperator *op) {
if( b ) fp[2] = 1.0f - fp[2]; if( b ) fp[2] = 1.0f - fp[2];
if( a ) fp[3] = 1.0f - fp[3]; if( a ) fp[3] = 1.0f - fp[3];
} }
dirty = 1;
IMB_rect_from_float(ibuf); IMB_rect_from_float(ibuf);
} }
else if(ibuf->rect) { else if(ibuf->rect) {
@@ -1381,10 +1382,12 @@ static int image_invert_exec(bContext *C, wmOperator *op) {
if( b ) cp[2] = 255 - cp[2]; if( b ) cp[2] = 255 - cp[2];
if( a ) cp[3] = 255 - cp[3]; if( a ) cp[3] = 255 - cp[3];
} }
dirty = 1;
} }
else else
return OPERATOR_CANCELLED; return OPERATOR_CANCELLED;
ibuf->userflags |= IB_BITMAPDIRTY; // mark as modified
WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima); WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
return OPERATOR_FINISHED; return OPERATOR_FINISHED;
@@ -1400,10 +1403,10 @@ void IMAGE_OT_invert(wmOperatorType *ot) {
ot->exec= image_invert_exec; ot->exec= image_invert_exec;
/* properties */ /* properties */
RNA_def_boolean(ot->srna, "inv_r", 0, "Red", "Invert Red Channel"); RNA_def_boolean(ot->srna, "invert_r", 0, "Red", "Invert Red Channel");
RNA_def_boolean(ot->srna, "inv_g", 0, "Green", "Invert Green Channel"); RNA_def_boolean(ot->srna, "invert_g", 0, "Green", "Invert Green Channel");
RNA_def_boolean(ot->srna, "inv_b", 0, "Blue", "Invert Blue Channel"); RNA_def_boolean(ot->srna, "invert_b", 0, "Blue", "Invert Blue Channel");
RNA_def_boolean(ot->srna, "inv_a", 0, "Alpha", "Invert Alpha Channel"); RNA_def_boolean(ot->srna, "invert_a", 0, "Alpha", "Invert Alpha Channel");
/* flags */ /* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1563,6 +1566,10 @@ void IMAGE_OT_unpack(wmOperatorType *ot)
/* flags */ /* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
RNA_def_enum(ot->srna, "method", unpack_method_items, PF_USE_LOCAL, "Method", "How to unpack.");
RNA_def_string(ot->srna, "id", "", 21, "Image Name", "Image datablock name to unpack."); /* XXX, weark!, will fail with library, name collisions */
} }
/******************** sample image operator ********************/ /******************** sample image operator ********************/