From b8ef3293da0457f3db3e1fa92d5834a310878de3 Mon Sep 17 00:00:00 2001 From: YPozdnyakov Date: Tue, 27 Jan 2015 13:49:04 +0200 Subject: [PATCH] fix incorrect logic when loading session via NextStep document API [Reviewed by] Paul Davis --- gtk2_ardour/ardour_ui.cc | 23 +++++++++-------------- gtk2_ardour/ardour_ui.h | 2 +- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 5e8f8f52b8..7d8bc4ccc6 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -775,7 +775,7 @@ ARDOUR_UI::starting () const char *nsm_url; app->ShouldQuit.connect (sigc::mem_fun (*this, &ARDOUR_UI::queue_finish)); - app->ShouldLoad.connect (sigc::mem_fun (*this, &ARDOUR_UI::idle_load)); + app->ShouldLoad.connect (sigc::mem_fun (*this, &ARDOUR_UI::load_from_application_api)); if (!Profile->get_trx() && ARDOUR_COMMAND_LINE::check_announcements) { check_announcements (); @@ -2703,20 +2703,15 @@ ARDOUR_UI::build_session_from_dialog (SessionDialog& sd, const std::string& sess } void -ARDOUR_UI::idle_load (const std::string& path) +ARDOUR_UI::load_from_application_api (const std::string& path) { - if (_session) { - if (Glib::file_test (path, Glib::FILE_TEST_IS_DIR)) { - /* /path/to/foo => /path/to/foo, foo */ - load_session (path, basename_nosuffix (path)); - } else { - /* /path/to/foo/foo.ardour => /path/to/foo, foo */ - load_session (Glib::path_get_dirname (path), basename_nosuffix (path)); - } - - } else { - ARDOUR_COMMAND_LINE::session_name = path; - } + ARDOUR_COMMAND_LINE::session_name = path; + + if (Glib::file_test (path, Glib::FILE_TEST_IS_DIR)) { + load_session (path, basename_nosuffix (path)); + } else { + load_session (Glib::path_get_dirname (path), basename_nosuffix (path)); + } } namespace diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 9623d4e51e..fcf94b38bb 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -163,7 +163,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void hide_about (); void open_media_folder (); - void idle_load (const std::string& path); + void load_from_application_api (const std::string& path); void finish(); int load_session (const std::string& path, const std::string& snapshot, std::string mix_template = std::string());