Commit: 65bc90726d05ca67687bbeaf3d11a118e0dca01f
Author: Stefan Werner
Date: Fri Jun 16 15:37:16 2017 +0200
Branches: temp_cryptomatte
https://developer.blender.org/rB65bc90726d05ca67687bbeaf3d11a118e0dca01f
Compositor: Cryptomatte node now has proper eye dropper buttons for
adding/removing matte false colors
===================================================================
M source/blender/editors/include/UI_interface.h
M source/blender/editors/interface/interface_eyedropper.c
M source/blender/editors/interface/interface_templates.c
M source/blender/editors/space_node/drawnode.c
===================================================================
diff --git a/source/blender/editors/include/UI_interface.h
b/source/blender/editors/include/UI_interface.h
index 252c199d46c..a487a272df6 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -926,6 +926,7 @@ void uiTemplateCurveMapping(uiLayout *layout, struct
PointerRNA *ptr, const char
int levels, int brush, int neg_slope);
void uiTemplateColorPicker(uiLayout *layout, struct PointerRNA *ptr, const
char *propname, int value_slider, int lock, int lock_luminosity, int cubic);
void uiTemplatePalette(uiLayout *layout, struct PointerRNA *ptr, const char
*propname, int color);
+void uiTemplateEyedropper(uiLayout *layout, struct PointerRNA *ptr, const char
*prooname);
void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, const char
*propname,
PointerRNA *used_ptr, const char *used_propname, int
active_layer);
void uiTemplateGameStates(uiLayout *layout, struct PointerRNA *ptr, const char
*propname,
diff --git a/source/blender/editors/interface/interface_eyedropper.c
b/source/blender/editors/interface/interface_eyedropper.c
index eab609ebe84..338f3d4d06c 100644
--- a/source/blender/editors/interface/interface_eyedropper.c
+++ b/source/blender/editors/interface/interface_eyedropper.c
@@ -452,6 +452,12 @@ static int eyedropper_exec(bContext *C, wmOperator *op)
static int eyedropper_poll(bContext *C)
{
+#if 1
+ // this is how this function was until sep 2016 -
+ // the now added check breaks the eye dropper button for cryptomattes
+ if (!CTX_wm_window(C)) return 0;
+ else return 1;
+#else
PointerRNA ptr;
PropertyRNA *prop;
int index_dummy;
@@ -466,6 +472,7 @@ static int eyedropper_poll(bContext *C)
}
return 0;
+#endif
}
void UI_OT_eyedropper_color(wmOperatorType *ot)
diff --git a/source/blender/editors/interface/interface_templates.c
b/source/blender/editors/interface/interface_templates.c
index 131584dd405..0aee8a63737 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -2440,6 +2440,29 @@ void uiTemplatePalette(uiLayout *layout, PointerRNA
*ptr, const char *propname,
}
}
+void uiTemplateEyedropper(uiLayout *layout, PointerRNA *ptr, const char
*propname)
+{
+ PropertyRNA *prop = RNA_struct_find_property(ptr, propname);
+ uiBlock *block;
+ uiBut *but;
+ uiLayout *col;
+
+ if (!prop) {
+ RNA_warning("property not found: %s.%s",
RNA_struct_identifier(ptr->type), propname);
+ return;
+ }
+
+ block = uiLayoutGetBlock(layout);
+
+ col = uiLayoutColumn(layout, true);
+ uiLayoutRow(col, true);
+
+ uiDefBut(block, UI_BTYPE_LABEL, 0, RNA_property_ui_name(prop), 0, 19,
145, 19, NULL, 0, 0, 0, 0, RNA_property_ui_description(prop));
+ but = uiDefIconButO(block, UI_BTYPE_BUT, "UI_OT_eyedropper_color",
WM_OP_INVOKE_DEFAULT, ICON_EYEDROPPER, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL);
+ but->rnapoin = *ptr;
+ but->rnaprop = prop;
+ but->rnaindex = -1;
+}
/********************* Layer Buttons Template ************************/
diff --git a/source/blender/editors/space_node/drawnode.c
b/source/blender/editors/space_node/drawnode.c
index 620ec573d52..f1e0dc3059a 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -2488,20 +2488,8 @@ static void node_composit_buts_sunbeams(uiLayout
*layout, bContext *UNUSED(C), P
static void node_composit_buts_cryptomatte(uiLayout *layout, bContext
*UNUSED(C), PointerRNA *ptr)
{
- uiLayout *split, *col, *row;
-
- uiItemR(layout, ptr, "matte_id", 0, NULL, ICON_NONE);
-
- split = uiLayoutSplit(layout, 0.0f, false);
- col = uiLayoutColumn(split, false);
- uiTemplateColorPicker(col, ptr, "add", 1, 1, 0, 1);
- row = uiLayoutRow(col, false);
- uiItemR(row, ptr, "add", 0, NULL, ICON_NONE);
-
- col = uiLayoutColumn(split, false);
- uiTemplateColorPicker(col, ptr, "remove", 1, 1, 1, 1);
- row = uiLayoutRow(col, false);
- uiItemR(row, ptr, "remove", 0, NULL, ICON_NONE);
+ uiTemplateEyedropper(layout, ptr, "add");
+ uiTemplateEyedropper(layout, ptr, "remove");
}
static void node_composit_buts_cryptomatte_ex(uiLayout *layout, bContext
*UNUSED(C), PointerRNA *UNUSED(ptr))
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs