From 06c7a5da6b1198afa00fdee5f705c15643d68db6 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 27 May 2012 18:07:30 +0000 Subject: don't alter session search path frm within FileSource constructor, do it when a source is added to the session; related - don't add sources that are created with announce=false to the session, and as a (new) corollary, no longer cause them to potentially alter the session search path (this applies mostly to sources created for auditioning) git-svn-id: svn://localhost/ardour2/branches/3.0@12456 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/file_source.cc | 6 +----- libs/ardour/session.cc | 8 ++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libs/ardour/file_source.cc b/libs/ardour/file_source.cc index a7e3585e64..fd3e9ef142 100644 --- a/libs/ardour/file_source.cc +++ b/libs/ardour/file_source.cc @@ -122,11 +122,7 @@ FileSource::init (const string& pathstr, bool must_exist) } set_within_session_from_path (_path); - - if (!within_session()) { - _session.ensure_search_path_includes (Glib::path_get_dirname (_path), _type); - } - + _name = Glib::path_get_basename (_path); if (_file_is_new && must_exist) { diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index b09d67fb35..37d4d2908f 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -2952,6 +2952,14 @@ Session::add_source (boost::shared_ptr source) /* yay, new source */ + boost::shared_ptr fs = boost::dynamic_pointer_cast (source); + + if (fs) { + if (!fs->within_session()) { + ensure_search_path_includes (Glib::path_get_dirname (fs->path()), fs->type()); + } + } + set_dirty(); boost::shared_ptr afs; -- cgit v1.2.3