sigc::connection changed_connection;
bool execute_changed_queued()const { return !changed_set_.empty() || !replaced_set_.empty(); }
bool execute_changed_value_nodes();
void clear_changed_queue() { changed_set_.clear(); replaced_set_.clear(); }
sigc::connection changed_connection;
bool execute_changed_queued()const { return !changed_set_.empty() || !replaced_set_.empty(); }
bool execute_changed_value_nodes();
void clear_changed_queue() { changed_set_.clear(); replaced_set_.clear(); }
void on_value_node_added(synfig::ValueNode::Handle value_node);
void on_value_node_deleted(synfig::ValueNode::Handle value_node);
void on_value_node_changed(synfig::ValueNode::Handle value_node);
void on_value_node_added(synfig::ValueNode::Handle value_node);
void on_value_node_deleted(synfig::ValueNode::Handle value_node);
void on_value_node_changed(synfig::ValueNode::Handle value_node);
void on_value_node_replaced(synfig::ValueNode::Handle replaced_value_node,synfig::ValueNode::Handle new_value_node);
void on_canvas_added(synfig::Canvas::Handle canvas);
void on_canvas_removed(synfig::Canvas::Handle canvas);
void on_value_node_replaced(synfig::ValueNode::Handle replaced_value_node,synfig::ValueNode::Handle new_value_node);
void on_canvas_added(synfig::Canvas::Handle canvas);
void on_canvas_removed(synfig::Canvas::Handle canvas);
void refresh_row(Gtk::TreeModel::Row &row, bool do_children=false);
Gtk::TreeModel::Row get_canvas_row()const { return canvas_row; }
void refresh_row(Gtk::TreeModel::Row &row, bool do_children=false);
Gtk::TreeModel::Row get_canvas_row()const { return canvas_row; }
static Glib::RefPtr<ChildrenTreeStore> create(etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_);
}; // END of class ChildrenTreeStore
static Glib::RefPtr<ChildrenTreeStore> create(etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_);
}; // END of class ChildrenTreeStore