From 8b723dfafd513e4791ef00a981b1216ea7ef148b Mon Sep 17 00:00:00 2001 From: Tamito Kajiyama Date: Wed, 4 Sep 2013 01:15:23 +0000 Subject: Added better support for line styles in the Outliner. --- .../blender/editors/space_outliner/outliner_draw.c | 2 ++ .../editors/space_outliner/outliner_tools.c | 2 +- .../blender/editors/space_outliner/outliner_tree.c | 33 ++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) (limited to 'source/blender/editors/space_outliner') diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c index 44d5672e7da..6200b98350f 100644 --- a/source/blender/editors/space_outliner/outliner_draw.c +++ b/source/blender/editors/space_outliner/outliner_draw.c @@ -1389,6 +1389,8 @@ static void tselem_draw_icon(uiBlock *block, int xmax, float x, float y, TreeSto tselem_draw_icon_uibut(&arg, ICON_GROUP); break; case ID_LI: tselem_draw_icon_uibut(&arg, ICON_LIBRARY_DATA_DIRECT); break; + case ID_LS: + tselem_draw_icon_uibut(&arg, ICON_BRUSH_DATA); break; /* FIXME proper icon */ } } } diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c index b346d6b15de..a0af9340fe2 100644 --- a/source/blender/editors/space_outliner/outliner_tools.c +++ b/source/blender/editors/space_outliner/outliner_tools.c @@ -114,7 +114,7 @@ static void set_operation_types(SpaceOops *soops, ListBase *lb, case ID_LA: case ID_AR: case ID_CA: case ID_SPK: case ID_MA: case ID_TE: case ID_IP: case ID_IM: case ID_SO: case ID_KE: case ID_WO: case ID_AC: - case ID_NLA: case ID_TXT: case ID_GR: + case ID_NLA: case ID_TXT: case ID_GR: case ID_LS: if (*idlevel == 0) *idlevel = idcode; else if (*idlevel != idcode) *idlevel = -1; break; 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; + } } } -- cgit v1.2.3