diff options
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_tree.c')
-rw-r--r-- | source/blender/editors/space_outliner/outliner_tree.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index ddbc49bf995..f723fbedc7b 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -803,8 +803,12 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i } /* One exception */ - if (type == TSE_ID_BASE); - else if (id == NULL) return NULL; + if (type == TSE_ID_BASE) { + /* pass */ + } + else if (id == NULL) { + return NULL; + } te = MEM_callocN(sizeof(TreeElement), "tree elem"); /* add to the visual tree */ @@ -832,7 +836,11 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i /* pass */ } else { - te->name = id->name + 2; // default, can be overridden by Library or non-ID data + /* do here too, for blend file viewer, own ID_LI then shows file name */ + if (GS(id->name) == ID_LI) + te->name = ((Library *)id)->name; + else + te->name = id->name + 2; // default, can be overridden by Library or non-ID data te->idcode = GS(id->name); } @@ -840,7 +848,7 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i TreeStoreElem *tsepar = parent ? TREESTORE(parent) : NULL; /* ID datablock */ - if (tsepar==NULL || tsepar->type != TSE_ID_BASE) + if (tsepar == NULL || tsepar->type != TSE_ID_BASE) outliner_add_id_contents(soops, te, tselem, id); } else if (type == TSE_ANIM_DATA) { @@ -1511,7 +1519,7 @@ void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops) } /* make hierarchy */ ten = soops->tree.first; - ten= ten->next; /* first one is main */ + ten = ten->next; /* first one is main */ while (ten) { TreeElement *nten = ten->next, *par; tselem = TREESTORE(ten); |