From 8aab26b3b3761108bb21b872738f8d324c2f860f Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Tue, 15 Sep 2020 15:34:27 -0500 Subject: 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. --- source/blender/editors/interface/interface_panel.c | 15 ++++++++++++ .../editors/interface/interface_templates.c | 28 ---------------------- 2 files changed, 15 insertions(+), 28 deletions(-) (limited to 'source/blender') 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 @@ -521,6 +521,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, ®ion->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. */ @@ -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, ®ion->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, ®ion->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, ®ion->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, ®ion->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, ®ion->panels) { - if ((panel_iter->type != NULL) && (panel_iter->type->flag & PNL_INSTANCED)) { - UI_panel_set_expand_from_list_data(C, panel_iter); - } - } } } -- cgit v1.2.3