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

Reply via email to