diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-22 20:21:43 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-12-22 20:21:43 +0000 |
commit | c83389b8ec5fef9553a401e6123b7e55702af9e2 (patch) | |
tree | 5580dd13b6275eefe67b9147ce96fa10db4d8674 /gtk2_ardour/editor_mixer.cc | |
parent | 87fb46859c5950af7c00111afa81a00a1fad2196 (diff) |
cleanup up cleanup at session destruction; clarify the meaning of 3 signals (DropReferences & Destroyed in libardour ; CatchDeletion in the GTK UI); clarify ownership of objects (session no longer pays attention to DropReferences for objects that it is considered to own, such as routes, sources, etc); fix up MIDI parsing and a couple of other places by correcting syntax for return of values from a boost::signals2::signal (possible danger elsewhere to be checked)
git-svn-id: svn://localhost/ardour2/branches/3.0@6389 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_mixer.cc')
-rw-r--r-- | gtk2_ardour/editor_mixer.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc index 64d9e97ac6..56c5662690 100644 --- a/gtk2_ardour/editor_mixer.cc +++ b/gtk2_ardour/editor_mixer.cc @@ -169,7 +169,7 @@ Editor::create_editor_mixer () _session, false); current_mixer_strip->Hiding.connect (sigc::mem_fun(*this, &Editor::current_mixer_strip_hidden)); - current_mixer_strip->GoingAway.connect (*this, boost::bind (&Editor::current_mixer_strip_removed, this), gui_context()); + current_mixer_strip->CatchDeletion.connect (*this, boost::bind (&Editor::current_mixer_strip_removed, this), gui_context()); #ifdef GTKOSX current_mixer_strip->WidthChanged.connect (sigc::mem_fun(*this, &Editor::ensure_all_elements_drawn)); #endif @@ -349,16 +349,17 @@ Editor::session_going_away () playhead_cursor->canvas_item.hide (); - /* hide all tracks */ - - _routes->hide_all_tracks (false); - /* rip everything out of the list displays */ _regions->clear (); _routes->clear (); _route_groups->clear (); + for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { + delete *i; + } + track_views.clear (); + zoom_range_clock.set_session (0); nudge_clock.set_session (0); |