diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-03-06 15:40:42 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-03-06 15:40:42 +0000 |
commit | b6b68881b2c59c216d2195b1cea5e667187d83ed (patch) | |
tree | 6f6cae22e8d2175bbc54d428472402cd2d73eb2c /gtk2_ardour | |
parent | 4ffcec7b7974f9fb65b2da295cbadb219f2a1970 (diff) |
remove the session region list; GUI now represents (a relatively unfiltered view of) the raw region list that always contains every single region ever created
git-svn-id: svn://localhost/ardour2/branches/3.0@6739 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/editor_regions.cc | 31 | ||||
-rw-r--r-- | gtk2_ardour/editor_regions.h | 5 |
3 files changed, 15 insertions, 23 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 1b03576ace..4b97ceea2d 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -4971,7 +4971,7 @@ Editor::hide_a_region (boost::shared_ptr<Region> r) void Editor::remove_a_region (boost::shared_ptr<Region> r) { - _session->remove_region_from_region_list (r); + // _session->remove_region_from_region_list (r); } void diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index 39e8b84c1b..18b6971fe8 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -28,8 +28,9 @@ #include "ardour/audioregion.h" #include "ardour/audiofilesource.h" +#include "ardour/region_factory.h" +#include "ardour/session.h" #include "ardour/silentfilesource.h" -#include "ardour/session_region.h" #include "ardour/profile.h" #include <gtkmm2ext/stop_signal.h> @@ -139,7 +140,6 @@ EditorRegions::set_session (ARDOUR::Session* s) if (_session) { _session->RegionsAdded.connect (_session_connections, ui_bind (&EditorRegions::handle_new_regions, this, _1), gui_context()); - _session->RegionRemoved.connect (_session_connections, ui_bind (&EditorRegions::handle_region_removed, this, _1), gui_context()); _session->RegionHiddenChange.connect (_session_connections, ui_bind (&EditorRegions::region_hidden, this, _1), gui_context()); } @@ -147,15 +147,7 @@ EditorRegions::set_session (ARDOUR::Session* s) } void -EditorRegions::handle_region_removed (boost::weak_ptr<Region> wregion) -{ - ENSURE_GUI_THREAD (*this, &EditorRegions::handle_region_removed, wregion) - - redisplay (); -} - -void -EditorRegions::handle_new_regions (vector<boost::weak_ptr<Region> >& v) +EditorRegions::handle_new_regions (vector<boost::shared_ptr<Region> >& v) { ENSURE_GUI_THREAD (*this, &EditorRegions::handle_new_regions, v) add_regions (v); @@ -180,13 +172,10 @@ EditorRegions::region_hidden (boost::shared_ptr<Region> r) void -EditorRegions::add_regions (vector<boost::weak_ptr<Region> >& regions) +EditorRegions::add_regions (vector<boost::shared_ptr<Region> >& regions) { - for (vector<boost::weak_ptr<Region> >::iterator x = regions.begin(); x != regions.end(); ++x) { - boost::shared_ptr<Region> region ((*x).lock()); - if (region) { - add_region (region); - } + for (vector<boost::shared_ptr<Region> >::iterator x = regions.begin(); x != regions.end(); ++x) { + add_region (*x); } } @@ -511,7 +500,11 @@ EditorRegions::redisplay () */ tmp_region_list.clear(); - _session->foreach_region (this, &EditorRegions::insert_into_tmp_regionlist); + + const RegionFactory::RegionMap& regions (RegionFactory::regions()); + for (RegionFactory::RegionMap::const_iterator i = regions.begin(); i != regions.end(); ++i) { + insert_into_tmp_regionlist (i->second); + } for (list<boost::shared_ptr<Region> >::iterator r = tmp_region_list.begin(); r != tmp_region_list.end(); ++r) { add_region (*r); @@ -1000,7 +993,7 @@ EditorRegions::button_release (GdkEventButton *ev) } if (region && Keyboard::is_delete_event (ev)) { - _session->remove_region_from_region_list (region); + // _session->remove_region_from_region_list (region); return true; } diff --git a/gtk2_ardour/editor_regions.h b/gtk2_ardour/editor_regions.h index 33e077261c..c4ec4a1ba2 100644 --- a/gtk2_ardour/editor_regions.h +++ b/gtk2_ardour/editor_regions.h @@ -121,10 +121,9 @@ private: int sorter (Gtk::TreeModel::iterator, Gtk::TreeModel::iterator); void handle_new_region (boost::weak_ptr<ARDOUR::Region>); - void handle_new_regions (std::vector<boost::weak_ptr<ARDOUR::Region> >& ); - void handle_region_removed (boost::weak_ptr<ARDOUR::Region>); + void handle_new_regions (std::vector<boost::shared_ptr<ARDOUR::Region> >& ); void add_region (boost::shared_ptr<ARDOUR::Region>); - void add_regions (std::vector<boost::weak_ptr<ARDOUR::Region> > & ); + void add_regions (std::vector<boost::shared_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 &); |