diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-09-04 05:15:23 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-09-04 05:15:23 +0400 |
commit | 8b723dfafd513e4791ef00a981b1216ea7ef148b (patch) | |
tree | 28ad02bd42a5cd6ce0ba6ee314bfdca6d49f5d30 /source/blender/editors/space_outliner/outliner_tree.c | |
parent | efe779315247874c8893e052f4fe48996da68116 (diff) |
Added better support for line styles in the Outliner.
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_tree.c')
-rw-r--r-- | source/blender/editors/space_outliner/outliner_tree.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c index b281a00db2b..b86fba1398a 100644 --- a/source/blender/editors/space_outliner/outliner_tree.c +++ b/source/blender/editors/space_outliner/outliner_tree.c @@ -50,6 +50,7 @@ #include "DNA_sequence_types.h" #include "DNA_speaker_types.h" #include "DNA_object_types.h" +#include "DNA_linestyle_types.h" #include "BLI_blenlib.h" #include "BLI_utildefines.h" @@ -376,6 +377,28 @@ static bool outliner_animdata_test(AnimData *adt) return false; } +static void outliner_add_line_styles(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te) +{ + SceneRenderLayer *srl; + FreestyleLineSet *lineset; + + for (srl = sce->r.layers.first; srl; srl = srl->next) { + for (lineset = srl->freestyleConfig.linesets.first; lineset; lineset = lineset->next) { + lineset->linestyle->id.flag |= LIB_DOIT; + } + } + for (srl = sce->r.layers.first; srl; srl = srl->next) { + for (lineset = srl->freestyleConfig.linesets.first; lineset; lineset = lineset->next) { + FreestyleLineStyle *linestyle = lineset->linestyle; + + if (!(linestyle->id.flag & LIB_DOIT)) + continue; + linestyle->id.flag &= ~LIB_DOIT; + outliner_add_element(soops, lb, linestyle, te, 0, 0); + } + } +} + static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *sce, TreeElement *te) { SceneRenderLayer *srl; @@ -401,6 +424,8 @@ static void outliner_add_scene_contents(SpaceOops *soops, ListBase *lb, Scene *s outliner_add_element(soops, lb, sce, te, TSE_ANIM_DATA, 0); outliner_add_element(soops, lb, sce->world, te, 0, 0); + + outliner_add_line_styles(soops, lb, sce, te); } // can be inlined if necessary @@ -759,6 +784,14 @@ static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStor } break; } + case ID_LS: + { + FreestyleLineStyle *linestyle = (FreestyleLineStyle *)id; + + if (outliner_animdata_test(linestyle->adt)) + outliner_add_element(soops, &te->subtree, linestyle, te, TSE_ANIM_DATA, 0); + break; + } } } |