31 #include "../outliner_intern.h"
37 template<
typename T>
using List = ListBaseWrapper<T>;
66 lib->id.newid = (
ID *)ten;
72 if (ten ==
tree.first) {
80 if (!
lib || !
lib->parent) {
102 library_id->newid =
nullptr;
108 TreeElement *TreeDisplayOverrideLibrary::add_library_contents(
Main &mainvar,
112 const short filter_id_type = id_filter_get();
116 if (filter_id_type) {
125 for (
int a = 0;
a < tot;
a++) {
126 if (!lbarray[
a] || !lbarray[
a]->first) {
133 for (
ID *id_iter : List<ID>(lbarray[
a])) {
156 if (filter_id_type) {
166 for (
ID *
id : List<ID>(lbarray[
a])) {
167 if (override_library_id_filter_poll(
lib,
id)) {
183 short TreeDisplayOverrideLibrary::id_filter_get()
const
191 bool TreeDisplayOverrideLibrary::override_library_id_filter_poll(
Library *
lib,
ID *
id)
const
int set_listbasepointers(struct Main *main, struct ListBase *lb[])
struct ListBase * which_libbase(struct Main *bmain, short type)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define ID_IS_OVERRIDE_LIBRARY_REAL(_id)
Object groups, one object can be in many groups at once.
@ TSE_LIBRARY_OVERRIDE_BASE
Base Class For Tree-Displays.
SpaceOutliner & space_outliner_
TreeDisplayOverrideLibrary(SpaceOutliner &space_outliner)
ListBase buildTree(const TreeSourceData &source_data) override
const char * outliner_idcode_to_plural(short idcode)
ListBaseWrapper< T > List
void outliner_free_tree_element(TreeElement *element, ListBase *parent_subtree)
TreeElement * outliner_add_element(SpaceOutliner *space_outliner, ListBase *lb, void *idv, TreeElement *parent, short type, short index)
struct TreeElement * parent
The data to build the tree from.
Establish and manage Outliner trees for different display modes.