34 uint32_t
id()
const {
return _id; }
79 typedef std::shared_ptr<DataNode<T> >
SelfPtr;
89 ptr->set_self_ptr (ptr);
96 ptr->set_self_ptr (ptr);
120 typedef list<std::shared_ptr<DataNode<T> > >
ListType;
126 if (one == other) {
return false; }
127 for (
typename ListType::const_iterator it =
list.begin(); it !=
list.end(); ++it) {
128 if (it->get() == one) {
131 if (it->get() == other) {
136 std::cerr <<
"Invalid comparison list given to NodeSorter" << std::endl;
185 list<GraphNode *>::const_iterator
end_of_common_child_range (list<GraphNode *>
const & the_list, list<GraphNode *>::const_iterator beginning);
A graph node that contains data.
static SelfPtr create(DataPtr data)
std::shared_ptr< DataNode< T > > SelfPtr
std::shared_ptr< T > DataPtr
void sort_parents(list< std::shared_ptr< DataNode< P > > > const &sort_list)
static SelfPtr create(T *data)
void set_self_ptr(std::shared_ptr< DataNode< T > > ptr)
std::weak_ptr< DataNode< T > > WeakSelfPtr
A node in the hierarchical graph that represents a multiplicatable export item.
void remove_parent(GraphNode *parent)
bool is_ancestor_of(GraphNode const *node) const
list< GraphNode * > parents
GraphNode * last_child() const
void remove_child(GraphNode *child)
list< GraphNode * > const & get_parents() const
bool is_descendant_of(GraphNode const *node) const
void add_child(GraphNode *child, GraphNode *left_sibling)
void add_parent(GraphNode *parent)
list< GraphNode * > children
bool equals(GraphNode const *node) const
list< GraphNode * > const & get_children() const
GraphNode * first_child() const
PBD::Signal1< void, bool > SelectChanged
static uint32_t id_counter
NodeSorter(ListType const &list)
list< std::shared_ptr< DataNode< T > > > ListType
bool operator()(GraphNode *one, GraphNode *other)
std::shared_ptr< ChannelConfigNode > ChannelConfigNodePtr
DataNode< FilenameState > FilenameNode
DataNode< TimespanState > TimespanNode
static void remove_by_element(list< T > &the_list, T const &element)
MultiplicationGraph const & get_graph()
void remove_timespan(TimespanNodePtr node)
void split_filename(FilenameNodePtr node, float position=0.5)
void duplicate_channel_config_children(ChannelConfigNodePtr source, ChannelConfigNodePtr target, GraphNode *insertion_point=0)
void remove_channel_config(ChannelConfigNodePtr node)
std::shared_ptr< TimespanNode > TimespanNodePtr
list< GraphNode * >::const_iterator end_of_common_child_range(list< GraphNode * > const &the_list, list< GraphNode * >::const_iterator beginning)
void split_channel_config(ChannelConfigNodePtr node, float position=0.5)
TimespanNodePtr duplicate_timespan_node(TimespanNodePtr node)
void split_timespan(TimespanNodePtr node, float position=0.5)
void remove_filename(FilenameNodePtr node)
std::shared_ptr< FilenameNode > FilenameNodePtr
void duplicate_format_children(FormatNodePtr source, FormatNodePtr target, GraphNode *insertion_point=0)
ChannelConfigNodePtr duplicate_channel_config_node(ChannelConfigNodePtr node)
void split_node_at_position(GraphNode *old_node, GraphNode *new_node, float position)
FilenameNodePtr duplicate_filename_node(FilenameNodePtr node)
void remove_node(GraphNode *node)
PBD::Signal0< void > GraphChanged
void duplicate_timespan_children(TimespanNodePtr source, TimespanNodePtr target, GraphNode *insertion_point=0)
DataNode< FormatState > FormatNode
static void insert_after(list< T > &the_list, T const &position, T const &element)
FormatNodePtr duplicate_format_node(FormatNodePtr node)
void split_node(GraphNode *node, float position)
DataNode< ChannelConfigState > ChannelConfigNode
void split_format(FormatNodePtr node, float position=0.5)
void remove_format(FormatNodePtr node)
bool nodes_have_one_common_child(list< GraphNode * > const &the_list)
MultiplicationGraph graph
std::shared_ptr< FormatNode > FormatNodePtr
list< ChannelConfigNodePtr > channel_configs
list< TimespanNodePtr > timespans
list< FormatNodePtr > formats
list< FilenameNodePtr > filenames