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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-11-19 18:21:16 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-11-19 21:19:03 +0300
commiteff89030263b95d39059226708227721ecaa505b (patch)
tree6d772b60f1ec629cf135706daa3874d1a669bd53 /source/blender/editors/space_buttons
parent0ff05daee04d3ccc01b3c3980fdfc65951cdea9b (diff)
UI: hide scene / layer in properties context in some cases, for compactness.
Diffstat (limited to 'source/blender/editors/space_buttons')
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c30
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);
+ }
}
}