[Bf-blender-cvs] [da87ee1d05d] lanpr-under-gp: Cleanup: Make function private

Hans Goudey noreply at git.blender.org
Fri Oct 2 07:40:27 CEST 2020


Commit: da87ee1d05d20510e9168ff2c004ed9106ab5160
Author: Hans Goudey
Date:   Tue Sep 29 17:41:00 2020 -0500
Branches: lanpr-under-gp
https://developer.blender.org/rBda87ee1d05d20510e9168ff2c004ed9106ab5160

Cleanup: Make function private

The "UI_panel_set_expand_from_list_data" doesn't need to be in the
public API since it's just called every time an instanced panel is added.
This commit just sets the expansion automatically and adjusts some
naming to account for the moved function.

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

M	source/blender/editors/include/UI_interface.h
M	source/blender/editors/interface/interface_panel.c
M	source/blender/editors/interface/interface_templates.c

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

diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 4f656420b06..5fcde98f200 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -1717,7 +1717,8 @@ struct PointerRNA *UI_region_panel_custom_data_under_cursor(const struct bContex
 void UI_panel_custom_data_set(struct Panel *panel, struct PointerRNA *custom_data);
 
 /* Polyinstantiated panels for representing a list of data. */
-struct Panel *UI_panel_add_instanced(struct ARegion *region,
+struct Panel *UI_panel_add_instanced(const struct bContext *C,
+                                     struct ARegion *region,
                                      struct ListBase *panels,
                                      char *panel_idname,
                                      struct PointerRNA *custom_data);
@@ -1726,8 +1727,6 @@ void UI_panels_free_instanced(const struct bContext *C, struct ARegion *region);
 #define INSTANCED_PANEL_UNIQUE_STR_LEN 4
 void UI_list_panel_unique_str(struct Panel *panel, char *r_name);
 
-void UI_panel_set_expand_from_list_data(const struct bContext *C, struct Panel *panel);
-
 typedef void (*uiListPanelIDFromDataFunc)(void *data_link, char *r_idname);
 bool UI_panel_list_matches_data(struct ARegion *region,
                                 struct ListBase *data,
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index 66b9ec8685c..6304ce91688 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -116,6 +116,7 @@ typedef struct PanelSort {
   int new_offset_y;
 } PanelSort;
 
+static void panel_set_expansion_from_list_data(const bContext *C, Panel *panel);
 static int get_panel_real_size_y(const Panel *panel);
 static void panel_activate_state(const bContext *C, Panel *panel, uiHandlePanelState state);
 static int compare_panel(const void *a, const void *b);
@@ -240,10 +241,10 @@ static bool panels_need_realign(ScrArea *area, ARegion *region, Panel **r_panel_
 /** \name Functions for Instanced Panels
  * \{ */
 
-static Panel *UI_panel_add_instanced_ex(ARegion *region,
-                                        ListBase *panels,
-                                        PanelType *panel_type,
-                                        PointerRNA *custom_data)
+static Panel *panel_add_instanced(ARegion *region,
+                                  ListBase *panels,
+                                  PanelType *panel_type,
+                                  PointerRNA *custom_data)
 {
   Panel *panel = MEM_callocN(sizeof(Panel), "instanced panel");
   panel->type = panel_type;
@@ -256,7 +257,7 @@ static Panel *UI_panel_add_instanced_ex(ARegion *region,
    * function to create them, as UI_panel_begin does other things we don't need to do. */
   LISTBASE_FOREACH (LinkData *, child, &panel_type->children) {
     PanelType *child_type = child->data;
-    UI_panel_add_instanced_ex(region, &panel->children, child_type, custom_data);
+    panel_add_instanced(region, &panel->children, child_type, custom_data);
   }
 
   /* Make sure the panel is added to the end of the display-order as well. This is needed for
@@ -281,7 +282,8 @@ static Panel *UI_panel_add_instanced_ex(ARegion *region,
  * Called in situations where panels need to be added dynamically rather than
  * having only one panel corresponding to each #PanelType.
  */
-Panel *UI_panel_add_instanced(ARegion *region,
+Panel *UI_panel_add_instanced(const bContext *C,
+                              ARegion *region,
                               ListBase *panels,
                               char *panel_idname,
                               PointerRNA *custom_data)
@@ -296,7 +298,12 @@ Panel *UI_panel_add_instanced(ARegion *region,
     return NULL;
   }
 
-  return UI_panel_add_instanced_ex(region, panels, panel_type, custom_data);
+  Panel *new_panel = panel_add_instanced(region, panels, panel_type, custom_data);
+
+  /* Do this after #panel_add_instatnced so all subpanels are added. */
+  panel_set_expansion_from_list_data(C, new_panel);
+
+  return new_panel;
 }
 
 /**
@@ -478,7 +485,7 @@ static void reorder_instanced_panel_list(bContext *C, ARegion *region, Panel *dr
 }
 
 /**
- * Recursive implementation for #UI_panel_set_expand_from_list_data.
+ * Recursive implementation for #panel_set_expansion_from_list_data.
  *
  * \return Whether the closed flag for the panel or any sub-panels changed.
  */
@@ -496,11 +503,10 @@ static bool panel_set_expand_from_list_data_recursive(Panel *panel, short flag,
 }
 
 /**
- * Set the expansion of the panel and its sub-panels from the flag stored by the list data
- * corresponding to this panel. The flag has expansion stored in each bit in depth first
- * order.
+ * Set the expansion of the panel and its sub-panels from the flag stored in the
+ * corresponding list data. The flag has expansion stored in each bit in depth first order.
  */
-void UI_panel_set_expand_from_list_data(const bContext *C, Panel *panel)
+static void panel_set_expansion_from_list_data(const bContext *C, Panel *panel)
 {
   BLI_assert(panel->type != NULL);
   BLI_assert(panel->type->flag & PNL_INSTANCED);
@@ -527,7 +533,7 @@ static void region_panels_set_expansion_from_list_data(const bContext *C, ARegio
     if (panel->runtime_flag & PANEL_ACTIVE) {
       PanelType *panel_type = panel->type;
       if (panel_type != NULL && panel->type->flag & PNL_INSTANCED) {
-        UI_panel_set_expand_from_list_data(C, panel);
+        panel_set_expansion_from_list_data(C, panel);
       }
     }
   }
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index f02d1e06220..680b469fd9e 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -1921,11 +1921,7 @@ void uiTemplateModifiers(uiLayout *UNUSED(layout), bContext *C)
       PointerRNA *md_ptr = MEM_mallocN(sizeof(PointerRNA), "panel customdata");
       RNA_pointer_create(&ob->id, &RNA_Modifier, md, md_ptr);
 
-      Panel *new_panel = UI_panel_add_instanced(region, &region->panels, panel_idname, md_ptr);
-
-      if (new_panel != NULL) {
-        UI_panel_set_expand_from_list_data(C, new_panel);
-      }
+      UI_panel_add_instanced(C, region, &region->panels, panel_idname, md_ptr);
     }
   }
   else {
@@ -2080,15 +2076,13 @@ void uiTemplateConstraints(uiLayout *UNUSED(layout), bContext *C, bool use_bone_
       PointerRNA *con_ptr = MEM_mallocN(sizeof(PointerRNA), "panel customdata");
       RNA_pointer_create(&ob->id, &RNA_Constraint, con, con_ptr);
 
-      Panel *new_panel = UI_panel_add_instanced(region, &region->panels, panel_idname, con_ptr);
+      Panel *new_panel = UI_panel_add_instanced(C, region, &region->panels, panel_idname, con_ptr);
 
       if (new_panel) {
         /* Set the list panel functionality function pointers since we don't do it with python. */
         new_panel->type->set_list_data_expand_flag = set_constraint_expand_flag;
         new_panel->type->get_list_data_expand_flag = get_constraint_expand_flag;
         new_panel->type->reorder = constraint_reorder;
-
-        UI_panel_set_expand_from_list_data(C, new_panel);
       }
     }
   }
@@ -2162,11 +2156,7 @@ void uiTemplateGpencilModifiers(uiLayout *UNUSED(layout), bContext *C)
       PointerRNA *md_ptr = MEM_mallocN(sizeof(PointerRNA), "panel customdata");
       RNA_pointer_create(&ob->id, &RNA_GpencilModifier, md, md_ptr);
 
-      Panel *new_panel = UI_panel_add_instanced(region, &region->panels, panel_idname, md_ptr);
-
-      if (new_panel != NULL) {
-        UI_panel_set_expand_from_list_data(C, new_panel);
-      }
+      UI_panel_add_instanced(C, region, &region->panels, panel_idname, md_ptr);
     }
   }
   else {
@@ -2237,11 +2227,7 @@ void uiTemplateShaderFx(uiLayout *UNUSED(layout), bContext *C)
       PointerRNA *fx_ptr = MEM_mallocN(sizeof(PointerRNA), "panel customdata");
       RNA_pointer_create(&ob->id, &RNA_ShaderFx, fx, fx_ptr);
 
-      Panel *new_panel = UI_panel_add_instanced(region, &region->panels, panel_idname, fx_ptr);
-
-      if (new_panel != NULL) {
-        UI_panel_set_expand_from_list_data(C, new_panel);
-      }
+      UI_panel_add_instanced(C, region, &region->panels, panel_idname, fx_ptr);
     }
   }
   else {



More information about the Bf-blender-cvs mailing list