Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2020-09-15 23:34:27 +0300
committerHans Goudey <h.goudey@me.com>2020-09-15 23:34:27 +0300
commit8aab26b3b3761108bb21b872738f8d324c2f860f (patch)
tree40b0e90cf175036221a86885f5b8bb83c61ad33b /source/blender
parent2eec6ec793386cef522193f69e2790a4bd301391 (diff)
UI: Refactor some list panel expansion code
This commit moves the "get panel expansion from list data" function to UI_panels_end, which is an improvement because it's more centralized.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/interface/interface_panel.c15
-rw-r--r--source/blender/editors/interface/interface_templates.c28
2 files changed, 15 insertions, 28 deletions
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index c11e4397b4c..f956a34def9 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -522,6 +522,19 @@ void UI_panel_set_expand_from_list_data(const bContext *C, Panel *panel)
}
/**
+ * Set expansion based on the data for instanced panels.
+ */
+static void region_panels_set_expansion_from_list_data(const bContext *C, ARegion *region)
+{
+ LISTBASE_FOREACH (Panel *, panel, &region->panels) {
+ PanelType *panel_type = panel->type;
+ if (panel_type != NULL && panel->type->flag & PNL_INSTANCED) {
+ UI_panel_set_expand_from_list_data(C, panel);
+ }
+ }
+}
+
+/**
* Recursive implementation for #set_panels_list_data_expand_flag.
*/
static void get_panel_expand_flag(Panel *panel, short *flag, short *flag_index)
@@ -1898,6 +1911,8 @@ void UI_panels_end(const bContext *C, ARegion *region, int *r_x, int *r_y)
{
ScrArea *area = CTX_wm_area(C);
+ region_panels_set_expansion_from_list_data(C, region);
+
/* offset contents */
LISTBASE_FOREACH (uiBlock *, block, &region->uiblocks) {
if (block->active && block->panel) {
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 28c986f87cc..316525fa645 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -1940,13 +1940,6 @@ void uiTemplateModifiers(uiLayout *UNUSED(layout), bContext *C)
panel = panel->next;
}
-
- /* The expansion might have been changed elsewhere, so we still need to set it. */
- LISTBASE_FOREACH (Panel *, panel_iter, &region->panels) {
- if ((panel_iter->type != NULL) && (panel_iter->type->flag & PNL_INSTANCED)) {
- UI_panel_set_expand_from_list_data(C, panel_iter);
- }
- }
}
}
@@ -2114,13 +2107,6 @@ void uiTemplateConstraints(uiLayout *UNUSED(layout), bContext *C, bool use_bone_
panel = panel->next;
}
-
- /* The expansion might have been changed elsewhere, so we still need to set it. */
- LISTBASE_FOREACH (Panel *, panel_iter, &region->panels) {
- if ((panel_iter->type != NULL) && (panel_iter->type->flag & PNL_INSTANCED)) {
- UI_panel_set_expand_from_list_data(C, panel_iter);
- }
- }
}
}
@@ -2195,13 +2181,6 @@ void uiTemplateGpencilModifiers(uiLayout *UNUSED(layout), bContext *C)
panel = panel->next;
}
-
- /* The expansion might have been changed elsewhere, so we still need to set it. */
- LISTBASE_FOREACH (Panel *, panel_iter, &region->panels) {
- if ((panel_iter->type != NULL) && (panel_iter->type->flag & PNL_INSTANCED)) {
- UI_panel_set_expand_from_list_data(C, panel_iter);
- }
- }
}
}
@@ -2277,13 +2256,6 @@ void uiTemplateShaderFx(uiLayout *UNUSED(layout), bContext *C)
panel = panel->next;
}
-
- /* The expansion might have been changed elsewhere, so we still need to set it. */
- LISTBASE_FOREACH (Panel *, panel_iter, &region->panels) {
- if ((panel_iter->type != NULL) && (panel_iter->type->flag & PNL_INSTANCED)) {
- UI_panel_set_expand_from_list_data(C, panel_iter);
- }
- }
}
}