[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52035] trunk/blender/source/blender: Bugfix #33124

Ton Roosendaal ton at blender.org
Fri Nov 9 11:33:44 CET 2012


Revision: 52035
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52035
Author:   ton
Date:     2012-11-09 10:33:42 +0000 (Fri, 09 Nov 2012)
Log Message:
-----------
Bugfix #33124

User Preference setting for Color Picker type only affected the popup
version. Now it uses it for all color pickers in Panels too.

Note for UI Py team: col.template_color_wheel() function follows
the userpref - might be a need for rename here? Dunno how to handle
this. Comment noted in template code.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_templates.c
    trunk/blender/source/blender/editors/interface/interface_widgets.c
    trunk/blender/source/blender/makesrna/intern/rna_userdef.c

Modified: trunk/blender/source/blender/editors/interface/interface_templates.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_templates.c	2012-11-09 09:57:35 UTC (rev 52034)
+++ trunk/blender/source/blender/editors/interface/interface_templates.c	2012-11-09 10:33:42 UTC (rev 52035)
@@ -1951,10 +1951,11 @@
 	MEM_freeN(cb);
 }
 
-/********************* ColorWheel Template ************************/
+/********************* ColorPicker Template ************************/
 
 #define WHEEL_SIZE  100
 
+/* This template now follows User Preference for type - name is not correct anymore... */
 void uiTemplateColorWheel(uiLayout *layout, PointerRNA *ptr, const char *propname, int value_slider, int lock, int lock_luminosity, int cubic)
 {
 	PropertyRNA *prop = RNA_struct_find_property(ptr, propname);
@@ -1970,10 +1971,24 @@
 
 	RNA_property_float_ui_range(ptr, prop, &softmin, &softmax, &step, &precision);
 	
-	col = uiLayoutColumn(layout, FALSE);
+	col = uiLayoutColumn(layout, TRUE);
 	row = uiLayoutRow(col, TRUE);
 	
-	but = uiDefButR_prop(block, HSVCIRCLE, 0, "",   0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, prop, -1, 0.0, 0.0, 0, 0, "");
+	switch (U.color_picker_type) {
+		case USER_CP_CIRCLE:
+			but = uiDefButR_prop(block, HSVCIRCLE, 0, "",   0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, prop, -1, 0.0, 0.0, 0, 0, "");
+			break;
+		case USER_CP_SQUARE_SV:
+			but = uiDefButR_prop(block, HSVCUBE, 0, "",   0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, prop, -1, 0.0, 0.0, UI_GRAD_SV, 0, "");
+			break;
+		case USER_CP_SQUARE_HS:
+			but = uiDefButR_prop(block, HSVCUBE, 0, "",   0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, prop, -1, 0.0, 0.0, UI_GRAD_HS, 0, "");
+			break;
+		case USER_CP_SQUARE_HV:
+			but = uiDefButR_prop(block, HSVCUBE, 0, "",   0, 0, WHEEL_SIZE, WHEEL_SIZE, ptr, prop, -1, 0.0, 0.0, UI_GRAD_HV, 0, "");
+			break;
+	}
+	
 
 	if (lock) {
 		but->flag |= UI_BUT_COLOR_LOCK;
@@ -1989,10 +2004,29 @@
 	if (cubic)
 		but->flag |= UI_BUT_COLOR_CUBIC;
 
-	uiItemS(row);
 	
-	if (value_slider)
-		uiDefButR_prop(block, HSVCUBE, 0, "", WHEEL_SIZE + 6, 0, 14, WHEEL_SIZE, ptr, prop, -1, softmin, softmax, UI_GRAD_V_ALT, 0, "");
+	if (value_slider) {
+		
+		switch (U.color_picker_type) {
+			case USER_CP_CIRCLE:
+				uiItemS(row);
+				uiDefButR_prop(block, HSVCUBE, 0, "", WHEEL_SIZE + 6, 0, 14, WHEEL_SIZE, ptr, prop, -1, softmin, softmax, UI_GRAD_V_ALT, 0, "");
+				break;
+			case USER_CP_SQUARE_SV:
+				uiItemS(col);
+				uiDefButR_prop(block, HSVCUBE, 0, "", 0, 4, WHEEL_SIZE, 18, ptr, prop, -1, softmin, softmax, UI_GRAD_SV + 3, 0, "");
+				break;
+			case USER_CP_SQUARE_HS:
+				uiItemS(col);
+				uiDefButR_prop(block, HSVCUBE, 0, "", 0, 4, WHEEL_SIZE, 18, ptr, prop, -1, softmin, softmax, UI_GRAD_HS + 3, 0, "");
+				break;
+			case USER_CP_SQUARE_HV:
+				uiItemS(col);
+				uiDefButR_prop(block, HSVCUBE, 0, "", 0, 4, WHEEL_SIZE, 18, ptr, prop, -1, softmin, softmax, UI_GRAD_HV + 3, 0, "");
+				break;
+		}
+		
+	}
 }
 
 /********************* Layer Buttons Template ************************/

Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_widgets.c	2012-11-09 09:57:35 UTC (rev 52034)
+++ trunk/blender/source/blender/editors/interface/interface_widgets.c	2012-11-09 10:33:42 UTC (rev 52035)
@@ -2059,7 +2059,7 @@
 	
 	/* old below */
 	
-	for (dx = 0.0f; dx < 1.0f; dx += color_step) {
+	for (dx = 0.0f; dx < 0.999f; dx += color_step) { /* 0.999 = prevent float inaccuracy for steps */
 		/* previous color */
 		copy_v3_v3(col0[0], col1[0]);
 		copy_v3_v3(col0[1], col1[1]);
@@ -2114,7 +2114,7 @@
 		sx1 = rect->xmin +  dx               * BLI_rcti_size_x(rect);
 		sx2 = rect->xmin + (dx + color_step) * BLI_rcti_size_x(rect);
 		sy = rect->ymin;
-		dy = BLI_rcti_size_y(rect) / 3.0;
+		dy = (float)BLI_rcti_size_y(rect) / 3.0;
 		
 		glBegin(GL_QUADS);
 		for (a = 0; a < 3; a++, sy += dy) {

Modified: trunk/blender/source/blender/makesrna/intern/rna_userdef.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_userdef.c	2012-11-09 09:57:35 UTC (rev 52034)
+++ trunk/blender/source/blender/makesrna/intern/rna_userdef.c	2012-11-09 10:33:42 UTC (rev 52035)
@@ -3162,6 +3162,7 @@
 	RNA_def_property_enum_items(prop, color_picker_types);
 	RNA_def_property_enum_sdna(prop, NULL, "color_picker_type");
 	RNA_def_property_ui_text(prop, "Color Picker Type", "Different styles of displaying the color picker widget");
+	RNA_def_property_update(prop, 0, "rna_userdef_update");
 	
 	prop = RNA_def_property(srna, "use_preview_images", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_ALLWINCODECS);




More information about the Bf-blender-cvs mailing list