diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-11-19 18:21:16 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-11-19 21:19:03 +0300 |
commit | eff89030263b95d39059226708227721ecaa505b (patch) | |
tree | 6d772b60f1ec629cf135706daa3874d1a669bd53 /source/blender/editors | |
parent | 0ff05daee04d3ccc01b3c3980fdfc65951cdea9b (diff) |
UI: hide scene / layer in properties context in some cases, for compactness.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/space_buttons/buttons_context.c | 30 |
1 files changed, 19 insertions, 11 deletions
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); + } } } |