diff --git a/source/blender/editors/space_outliner/outliner_draw.cc b/source/blender/editors/space_outliner/outliner_draw.cc index 370e822077f..74b2977c6c5 100644 --- a/source/blender/editors/space_outliner/outliner_draw.cc +++ b/source/blender/editors/space_outliner/outliner_draw.cc @@ -72,6 +72,7 @@ #include "tree/tree_element_id.hh" #include "tree/tree_element_overrides.hh" #include "tree/tree_element_rna.hh" +#include "tree/tree_element_seq.hh" #include "tree/tree_iterator.hh" namespace blender::ed::outliner { @@ -2762,8 +2763,9 @@ TreeElementIcon tree_element_get_icon(TreeStoreElem *tselem, TreeElement *te) case TSE_POSEGRP: data.icon = ICON_GROUP_BONE; break; - case TSE_SEQUENCE: - switch (te->idcode) { + case TSE_SEQUENCE: { + const TreeElementSequence *te_seq = tree_element_cast(te); + switch (te_seq->getSequenceType()) { case SEQ_TYPE_SCENE: data.icon = ICON_SCENE_DATA; break; @@ -2816,6 +2818,7 @@ TreeElementIcon tree_element_get_icon(TreeStoreElem *tselem, TreeElement *te) break; } break; + } case TSE_SEQ_STRIP: data.icon = ICON_LIBRARY_DATA_DIRECT; break; diff --git a/source/blender/editors/space_outliner/tree/tree_element_seq.cc b/source/blender/editors/space_outliner/tree/tree_element_seq.cc index c9669bf8819..e8f577afbd9 100644 --- a/source/blender/editors/space_outliner/tree/tree_element_seq.cc +++ b/source/blender/editors/space_outliner/tree/tree_element_seq.cc @@ -22,13 +22,6 @@ TreeElementSequence::TreeElementSequence(TreeElement &legacy_te, Sequence &seque : AbstractTreeElement(legacy_te), sequence_(sequence) { BLI_assert(legacy_te.store_elem->type == TSE_SEQUENCE); - - /* - * The idcode is a little hack, but the outliner - * only check te->idcode if te->type is equal to zero, - * so this is "safe". - */ - legacy_te.idcode = sequence_.type; legacy_te.name = sequence_.name + 2; } @@ -62,6 +55,11 @@ Sequence &TreeElementSequence::getSequence() const return sequence_; } +SequenceType TreeElementSequence::getSequenceType() const +{ + return SequenceType(sequence_.type); +} + /* -------------------------------------------------------------------- */ /* Strip */ @@ -86,8 +84,6 @@ TreeElementSequenceStripDuplicate::TreeElementSequenceStripDuplicate(TreeElement : AbstractTreeElement(legacy_te), sequence_(sequence) { BLI_assert(legacy_te.store_elem->type == TSE_SEQUENCE_DUP); - - legacy_te_.idcode = sequence.type; legacy_te_.name = sequence.strip->stripdata->filename; } diff --git a/source/blender/editors/space_outliner/tree/tree_element_seq.hh b/source/blender/editors/space_outliner/tree/tree_element_seq.hh index 47257da9236..202b4a12e8c 100644 --- a/source/blender/editors/space_outliner/tree/tree_element_seq.hh +++ b/source/blender/editors/space_outliner/tree/tree_element_seq.hh @@ -8,6 +8,8 @@ #pragma once +#include "DNA_sequence_types.h" + #include "tree_element.hh" struct Sequence; @@ -25,6 +27,7 @@ class TreeElementSequence : public AbstractTreeElement { void expand(SpaceOutliner &) const override; Sequence &getSequence() const; + SequenceType getSequenceType() const; }; /* -------------------------------------------------------------------- */ diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index ed13528e1f6..64773fe31e1 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -679,7 +679,7 @@ enum { * * \warning #SEQ_TYPE_EFFECT BIT is used to determine if this is an effect strip! */ -enum { +typedef enum SequenceType { SEQ_TYPE_IMAGE = 0, SEQ_TYPE_META = 1, SEQ_TYPE_SCENE = 2, @@ -731,7 +731,7 @@ enum { SEQ_TYPE_EXCLUSION = 60, SEQ_TYPE_MAX = 60, -}; +} SequenceType; enum { SEQ_MOVIECLIP_RENDER_UNDISTORTED = 1 << 0,