From eff89030263b95d39059226708227721ecaa505b Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 19 Nov 2018 16:21:16 +0100 Subject: UI: hide scene / layer in properties context in some cases, for compactness. --- .../editors/space_buttons/buttons_context.c | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'source/blender/editors/space_buttons') diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c index 226a663971e..151959a916e 100644 --- a/source/blender/editors/space_buttons/buttons_context.c +++ b/source/blender/editors/space_buttons/buttons_context.c @@ -1014,6 +1014,7 @@ void buttons_context_draw(const bContext *C, uiLayout *layout) PointerRNA *ptr; char namebuf[128], *name; int a, icon; + bool first = true; if (!path) return; @@ -1024,29 +1025,36 @@ void buttons_context_draw(const bContext *C, uiLayout *layout) for (a = 0; a < path->len; a++) { ptr = &path->ptr[a]; - if (a != 0) + /* Skip scene and view layer to save space. */ + if ((!ELEM(sbuts->mainb, BCONTEXT_RENDER, BCONTEXT_OUTPUT, BCONTEXT_SCENE, BCONTEXT_VIEW_LAYER, BCONTEXT_WORLD) && ptr->type == &RNA_Scene)) { + continue; + } + else if ((!ELEM(sbuts->mainb, BCONTEXT_RENDER, BCONTEXT_OUTPUT, BCONTEXT_SCENE, BCONTEXT_VIEW_LAYER, BCONTEXT_WORLD) && ptr->type == &RNA_ViewLayer)) { + continue; + } + + /* Add > triangle. */ + if (!first) { uiItemL(row, "", ICON_SMALL_TRI_RIGHT_VEC); + } + else { + first = false; + } + /* Add icon + name .*/ if (ptr->data) { icon = RNA_struct_ui_icon(ptr->type); name = RNA_struct_name_get_alloc(ptr, namebuf, sizeof(namebuf), NULL); if (name) { - if ((!ELEM(sbuts->mainb, BCONTEXT_RENDER, BCONTEXT_OUTPUT, BCONTEXT_SCENE, BCONTEXT_VIEW_LAYER, BCONTEXT_WORLD) && ptr->type == &RNA_Scene)) { - uiItemLDrag(row, ptr, "", icon); /* save some space */ - } - else if ((!ELEM(sbuts->mainb, BCONTEXT_RENDER, BCONTEXT_OUTPUT, BCONTEXT_SCENE, BCONTEXT_VIEW_LAYER, BCONTEXT_WORLD) && ptr->type == &RNA_ViewLayer)) { - uiItemLDrag(row, ptr, "", icon); /* save some space */ - } - else { - uiItemLDrag(row, ptr, name, icon); - } + uiItemLDrag(row, ptr, name, icon); if (name != namebuf) MEM_freeN(name); } - else + else { uiItemL(row, "", icon); + } } } -- cgit v1.2.3