another fix for binding shared_ptr's into signals

git-svn-id: svn://localhost/ardour2/branches/3.0@6194 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2009-11-28 00:48:35 +00:00
parent 8724caeee8
commit c5db9a21b9
3 changed files with 13 additions and 1 deletions

View file

@ -156,6 +156,16 @@ EditorRegions::handle_new_regions (vector<boost::weak_ptr<Region> >& v)
add_regions (v);
}
void
EditorRegions::region_hidden_weak (boost::weak_ptr<Region> wr)
{
boost::shared_ptr<Region> r (wr.lock());
if (r) {
region_hidden (r);
}
}
void
EditorRegions::region_hidden (boost::shared_ptr<Region> r)
{
@ -163,6 +173,7 @@ EditorRegions::region_hidden (boost::shared_ptr<Region> r)
redisplay ();
}
void
EditorRegions::add_regions (vector<boost::weak_ptr<Region> >& regions)
{

View file

@ -126,6 +126,7 @@ private:
void add_region (boost::shared_ptr<ARDOUR::Region>);
void add_regions (std::vector<boost::weak_ptr<ARDOUR::Region> > & );
void region_hidden (boost::shared_ptr<ARDOUR::Region>);
void region_hidden_weak (boost::weak_ptr<ARDOUR::Region>);
void populate_row (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &);
void update_row (boost::shared_ptr<ARDOUR::Region>);
bool update_subrows (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &, int);

View file

@ -186,7 +186,7 @@ StreamView::add_region_view_weak (boost::weak_ptr<Region> r)
void
StreamView::add_region_view (boost::shared_ptr<Region> r)
{
ENSURE_GUI_THREAD (bind (mem_fun (*this, &StreamView::add_region_view), r));
ENSURE_GUI_THREAD (bind (mem_fun (*this, &StreamView::add_region_view_weak), boost::weak_ptr<Region>(r)));
add_region_view_internal (r, true);