[Bf-blender-cvs] [66ac0448eff] property-search-ui: Property Search: Improve layout debugging tool

Hans Goudey noreply at git.blender.org
Fri Jun 26 03:39:13 CEST 2020


Commit: 66ac0448eff9b94080ffb2f26b0e3833e408f198
Author: Hans Goudey
Date:   Thu Jun 25 21:39:05 2020 -0400
Branches: property-search-ui
https://developer.blender.org/rB66ac0448eff9b94080ffb2f26b0e3833e408f198

Property Search: Improve layout debugging tool

The tool now prints button types as well. Click to drag a panel while a
search is active to print a tree of the layouts, sublayouts, and buttons.

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

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 53279ad1af3..b030625e18e 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -5084,6 +5084,60 @@ void uiLayoutRootSetSearchOnly(uiLayout *layout, bool search_only)
 static void ui_layout_free(uiLayout *layout);
 
 #ifdef DEBUG_LAYOUT_ROOTS
+
+/* clang-format off */
+static const char *but_type_string(eButType type) {
+  switch (type) {
+    case UI_BTYPE_BUT: return  "But";
+    case UI_BTYPE_ROW: return  "Row But";
+    case UI_BTYPE_TEXT: return  "Text";
+    case UI_BTYPE_MENU: return  "Menu";
+    case UI_BTYPE_BUT_MENU: return  "But Menu";
+    case UI_BTYPE_NUM: return  "Number";
+    case UI_BTYPE_NUM_SLIDER: return  "Number Slider";
+    case UI_BTYPE_TOGGLE: return  "Toggle";
+    case UI_BTYPE_TOGGLE_N: return  "Toggle N";
+    case UI_BTYPE_ICON_TOGGLE: return  "Icon Toggle";
+    case UI_BTYPE_ICON_TOGGLE_N: return  "Icon Toggle N";
+    case UI_BTYPE_BUT_TOGGLE: return  "But Toggle";
+    case UI_BTYPE_CHECKBOX: return  "Checkbox";
+    case UI_BTYPE_CHECKBOX_N: return  "Checkbox N";
+    case UI_BTYPE_COLOR: return  "Color";
+    case UI_BTYPE_TAB: return  "Tab";
+    case UI_BTYPE_POPOVER: return  "Popover";
+    case UI_BTYPE_SCROLL: return  "Scroll";
+    case UI_BTYPE_BLOCK: return  "Block";
+    case UI_BTYPE_LABEL: return  "Label";
+    case UI_BTYPE_KEY_EVENT: return  "Key Event";
+    case UI_BTYPE_HSVCUBE: return  "HSV Cube";
+    case UI_BTYPE_PULLDOWN: return  "Pulldown";
+    case UI_BTYPE_ROUNDBOX: return  "Roundbox";
+    case UI_BTYPE_COLORBAND: return  "Colorband";
+    case UI_BTYPE_UNITVEC: return  "Unit Vector";
+    case UI_BTYPE_CURVE: return  "Curve";
+    case UI_BTYPE_CURVEPROFILE: return  "Curve Profile";
+    case UI_BTYPE_LISTBOX: return  "Listbox";
+    case UI_BTYPE_LISTROW: return  "List Row";
+    case UI_BTYPE_HSVCIRCLE: return  "HSV Circle";
+    case UI_BTYPE_TRACK_PREVIEW: return  "Track Preview";
+    case UI_BTYPE_SEARCH_MENU: return  "Search Menu";
+    case UI_BTYPE_EXTRA: return  "Extra";
+    case UI_BTYPE_HOTKEY_EVENT: return  "Hotkey Event";
+    case UI_BTYPE_IMAGE: return  "Image";
+    case UI_BTYPE_HISTOGRAM: return  "Histogram";
+    case UI_BTYPE_WAVEFORM: return  "Waveform";
+    case UI_BTYPE_VECTORSCOPE: return  "Vectorscope";
+    case UI_BTYPE_PROGRESS_BAR: return  "Progress Bar";
+    case UI_BTYPE_NODE_SOCKET: return  "Node Socket";
+    case UI_BTYPE_SEPR: return  "Spacer";
+    case UI_BTYPE_SEPR_LINE: return  "Spacer Line";
+    case UI_BTYPE_SEPR_SPACER: return  "Dynamic Spacer";
+    case UI_BTYPE_GRIP: return  "Grip";
+    default: return "Unkown Button Type";
+  }         
+}
+/* clang-format on */
+
 /* Keep order the same as enum above. */
 const char *item_type_names[12] = {
     "Button",      /* ITEM_BUTTON */
@@ -5106,16 +5160,17 @@ static void debug_print_button_item(uiButtonItem *button_item)
 
   if (but == NULL) {
     printf("NULL BUT");
+    return;
   }
-  else if (but->str && but->str[0]) {
+
+  printf("%s: ", but_type_string(but->type));
+
+  if (but->str && but->str[0]) {
     printf(but->str);
   }
   else if (!RNA_pointer_is_null(&but->rnapoin)) {
     printf(RNA_property_ui_name(but->rnaprop));
   }
-  else if (but->type == UI_BTYPE_SEPR) {
-    printf("(Padding)");
-  }
   else {
     printf("NOSTR");
   }
@@ -5129,8 +5184,6 @@ static void debug_print_layout(uiItem *item, int depth)
     printf("| ");
   }
 
-  printf("%s: ", item_type_names[item->type]);
-
   if (type == ITEM_BUTTON) {
     uiButtonItem *button_item = (uiButtonItem *)item;
 
@@ -5139,6 +5192,7 @@ static void debug_print_layout(uiItem *item, int depth)
   }
   else {
     uiLayout *layout = (uiLayout *)item;
+    printf("%s: ", item_type_names[item->type]);
 
     if (layout->property_search_layout_temp_debug) {
       printf(" (search layout)");



More information about the Bf-blender-cvs mailing list