Dis/reconnect to session signals for each session

This allows to load a session from a running instance.
Prior to this change this caused a crash (_session = null)

```
#1  ARDOUR::Session::session_directory() const (this=0x0) at ../libs/ardour/ardour/session.h:257
#2  EditorSources::populate_row(Gtk::TreeRow, boost::shared_ptr<ARDOUR::Region>) (this=0x555559836900, row=..., region=...) at ../gtk2_ardour/editor_sources.cc:433
#3  EditorSources::regions_changed
[ .. signal propagation ..]
#20 ARDOUR::Region::send_change
#21 PBD::Stateful::resume_property_changes
#22 ARDOUR::AudioRegion::_set_state
#23 ARDOUR::AudioRegion::set_state
#24 ARDOUR::RegionFactory::create
#25 ARDOUR::Session::XMLAudioRegionFactory
#27 ARDOUR::Session::load_regions
#28 ARDOUR::Session::set_state
#29 ARDOUR::Session::post_engine_init
#30 ARDOUR::Session::Session
#31 ARDOUR_UI::load_session_stage_two
#32 ARDOUR_UI::load_session
#33 ARDOUR_UI::open_recent_session
```
This commit is contained in:
Robin Gareus 2021-09-19 04:55:35 +02:00
parent 666e62076c
commit 0b2b361b32
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -330,6 +330,9 @@ EditorSources::set_session (ARDOUR::Session* s)
redisplay();
} else {
source_property_connection.disconnect ();
add_source_connection.disconnect ();
remove_source_connection.disconnect ();
clear();
}
}