diff options
author | Carl Hetherington <carl@carlh.net> | 2010-03-30 23:40:28 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-03-30 23:40:28 +0000 |
commit | e3dd8cc3ee481924997a1650e3a130b2579be209 (patch) | |
tree | c14bd1999d9e7887f6ec05dff2a697aa0323223a /gtk2_ardour | |
parent | 6721d997b159842e2c977ec0dd0c94002c0e1e47 (diff) |
Move region naming stuff from Session into RegionFactory, cleaning up some vestiges of when Session had a list of regions.
git-svn-id: svn://localhost/ardour2/branches/3.0@6812 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/editor_regions.cc | 50 | ||||
-rw-r--r-- | gtk2_ardour/editor_regions.h | 7 | ||||
-rw-r--r-- | gtk2_ardour/editor_summary.cc | 6 |
4 files changed, 17 insertions, 52 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index f7fe6e7b4a..f9022a04ff 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -2668,7 +2668,7 @@ Editor::region_from_selection () } internal_start = start - current->position(); - _session->region_name (new_name, current->name(), true); + RegionFactory::region_name (new_name, current->name(), true); PropertyList plist; @@ -2708,7 +2708,7 @@ Editor::create_region_from_selection (vector<boost::shared_ptr<Region> >& new_re } internal_start = start - current->position(); - _session->region_name (new_name, current->name(), true); + RegionFactory::region_name (new_name, current->name(), true); PropertyList plist; @@ -5927,7 +5927,7 @@ Editor::split_region_at_points (boost::shared_ptr<Region> r, AnalysisFeatureList string new_name; - if (_session->region_name (new_name, r->name())) { + if (RegionFactory::region_name (new_name, r->name())) { break; } diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index 981ada3eff..c33fc13bf2 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -129,48 +129,17 @@ EditorRegions::EditorRegions (Editor* e) //ARDOUR_UI::instance()->secondary_clock.mode_changed.connect (sigc::mem_fun(*this, &Editor::redisplay_regions)); ARDOUR_UI::instance()->secondary_clock.mode_changed.connect (sigc::mem_fun(*this, &EditorRegions::update_all_rows)); - ARDOUR::Region::RegionPropertyChanged.connect (region_property_connection, MISSING_INVALIDATOR, ui_bind (&EditorRegions::update_row, this, _1), gui_context()); - + ARDOUR::Region::RegionPropertyChanged.connect (region_property_connection, MISSING_INVALIDATOR, ui_bind (&EditorRegions::region_changed, this, _1, _2), gui_context()); + ARDOUR::RegionFactory::CheckNewRegion.connect (check_new_region_connection, MISSING_INVALIDATOR, ui_bind (&EditorRegions::add_region, this, _1), gui_context()); } void EditorRegions::set_session (ARDOUR::Session* s) { EditorComponent::set_session (s); - - if (_session) { - _session->RegionsAdded.connect (_session_connections, MISSING_INVALIDATOR, ui_bind (&EditorRegions::handle_new_regions, this, _1), gui_context()); - _session->RegionHiddenChange.connect (_session_connections, MISSING_INVALIDATOR, ui_bind (&EditorRegions::region_hidden, this, _1), gui_context()); - } - - redisplay (); -} - -void -EditorRegions::handle_new_regions (vector<boost::shared_ptr<Region> >& v) -{ - ENSURE_GUI_THREAD (*this, &EditorRegions::handle_new_regions, 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) -{ - ENSURE_GUI_THREAD (*this, &EditorRegions::region_hidden, r) redisplay (); } - void EditorRegions::add_regions (vector<boost::shared_ptr<Region> >& regions) { @@ -334,18 +303,9 @@ EditorRegions::add_region (boost::shared_ptr<Region> region) populate_row(region, (*row)); } - void -EditorRegions::region_changed (const PropertyChange& what_changed, boost::weak_ptr<Region> region) +EditorRegions::region_changed (boost::shared_ptr<Region> r, const PropertyChange& what_changed) { - ENSURE_GUI_THREAD (*this, &EditorRegions::region_changed, what_changed, region) - - boost::shared_ptr<Region> r = region.lock (); - - if (!r) { - return; - } - if (what_changed.contains (ARDOUR::Properties::name)) { /* find the region in our model and change its name */ TreeModel::Children rows = _model->children (); @@ -370,6 +330,10 @@ EditorRegions::region_changed (const PropertyChange& what_changed, boost::weak_p } } + + if (what_changed.contains (ARDOUR::Properties::hidden)) { + redisplay (); + } } void diff --git a/gtk2_ardour/editor_regions.h b/gtk2_ardour/editor_regions.h index c4ec4a1ba2..54f891950f 100644 --- a/gtk2_ardour/editor_regions.h +++ b/gtk2_ardour/editor_regions.h @@ -104,7 +104,7 @@ private: Columns _columns; - void region_changed (const PBD::PropertyChange&, boost::weak_ptr<ARDOUR::Region>); + void region_changed (boost::shared_ptr<ARDOUR::Region>, PBD::PropertyChange const &); void selection_changed (); sigc::connection _change_connection; bool set_selected_in_subrow (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &, int); @@ -120,12 +120,8 @@ 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::shared_ptr<ARDOUR::Region> >& ); void add_region (boost::shared_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 &); void update_row (boost::shared_ptr<ARDOUR::Region>); bool update_subrows (boost::shared_ptr<ARDOUR::Region>, Gtk::TreeModel::Row const &, int); @@ -149,6 +145,7 @@ private: bool _no_redisplay; std::list<boost::shared_ptr<ARDOUR::Region> > tmp_region_list; PBD::ScopedConnection region_property_connection; + PBD::ScopedConnection check_new_region_connection; bool ignore_region_list_selection_change; bool ignore_selected_region_change; }; diff --git a/gtk2_ardour/editor_summary.cc b/gtk2_ardour/editor_summary.cc index 27cbaefdba..fd4422bc08 100644 --- a/gtk2_ardour/editor_summary.cc +++ b/gtk2_ardour/editor_summary.cc @@ -61,8 +61,12 @@ EditorSummary::set_session (Session* s) set_dirty (); + /* Note: the EditorSummary already finds out about new regions from Editor::region_view_added + * (which attaches to StreamView::RegionViewAdded), and cut regions by the RegionPropertyChanged + * emitted when a cut region is added to the `cutlist' playlist. + */ + if (_session) { - _session->RegionRemoved.connect (_session_connections, invalidator (*this), boost::bind (&EditorSummary::set_dirty, this), gui_context()); _session->StartTimeChanged.connect (_session_connections, invalidator (*this), boost::bind (&EditorSummary::set_dirty, this), gui_context()); _session->EndTimeChanged.connect (_session_connections, invalidator (*this), boost::bind (&EditorSummary::set_dirty, this), gui_context()); } |