[Bf-blender-cvs] [dc87648970f] blender2.8: UI: Fix Properties with consecutive icons enabled in dropdown menus

Clément Foucault noreply at git.blender.org
Mon Jul 2 19:14:48 CEST 2018


Commit: dc87648970f56e9c1aa01e39b2414f97f2b99ed5
Author: Clément Foucault
Date:   Mon Jul 2 19:11:36 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBdc87648970f56e9c1aa01e39b2414f97f2b99ed5

UI: Fix Properties with consecutive icons enabled in dropdown menus

It was using ICON_UNLOCKED when the property was true.

This affected the use_lock_interface properties now displayed in the Render
menu.

===================================================================

M	source/blender/editors/interface/interface_layout.c

===================================================================

diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 4ff19d66bac..9b9199538d6 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -1554,13 +1554,24 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
 	    /* use checkboxes only as a fallback in pie-menu's, when no icon is defined */
 	    ((layout->root->type == UI_LAYOUT_PIEMENU) && (icon == ICON_NONE)))
 	{
+		int prop_flag = RNA_property_flag(prop);
 		if (type == PROP_BOOLEAN && ((is_array == false) || (index != RNA_NO_INDEX))) {
-			if (is_array) icon = (RNA_property_boolean_get_index(ptr, prop, index)) ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT;
-			else icon = (RNA_property_boolean_get(ptr, prop)) ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT;
+			if (prop_flag & PROP_ICONS_CONSECUTIVE) {
+				icon = ICON_CHECKBOX_DEHLT; /* but->iconadd will set to correct icon */
+			}
+			else if (is_array) {
+				icon = (RNA_property_boolean_get_index(ptr, prop, index)) ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT;
+			}
+			else {
+				icon = (RNA_property_boolean_get(ptr, prop)) ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT;
+			}
 		}
 		else if (type == PROP_ENUM && index == RNA_ENUM_VALUE) {
 			int enum_value = RNA_property_enum_get(ptr, prop);
-			if (RNA_property_flag(prop) & PROP_ENUM_FLAG) {
+			if (prop_flag & PROP_ICONS_CONSECUTIVE) {
+				icon = ICON_CHECKBOX_DEHLT; /* but->iconadd will set to correct icon */
+			}
+			else if (prop_flag & PROP_ENUM_FLAG) {
 				icon = (enum_value & value) ? ICON_CHECKBOX_HLT : ICON_CHECKBOX_DEHLT;
 			}
 			else {



More information about the Bf-blender-cvs mailing list