diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2019-07-18 10:17:05 -0600 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2019-07-18 10:53:34 -0600 |
commit | 5f8c9a4e607036bdbea0e06f2b9aa50e63ee4943 (patch) | |
tree | 788a59e0d5afa72a35122c5bc25a9f7eb4f962ea /gtk2_ardour | |
parent | 473fd45ca2886682ad28c389c16704dabe6fc3d1 (diff) |
if a user specifies just a session name (not path) and it does not exist, use the default session folder
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 09912dc95e..f9d09e34c9 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -3285,15 +3285,33 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri template_name = load_template; } - session_name = basename_nosuffix (ARDOUR_COMMAND_LINE::session_name); session_path = ARDOUR_COMMAND_LINE::session_name; if (!session_path.empty()) { + if (Glib::file_test (session_path.c_str(), Glib::FILE_TEST_EXISTS)) { + + session_name = basename_nosuffix (ARDOUR_COMMAND_LINE::session_name); + if (Glib::file_test (session_path.c_str(), Glib::FILE_TEST_IS_REGULAR)) { /* session/snapshot file, change path to be dir */ session_path = Glib::path_get_dirname (session_path); } + } else { + + /* session (file or folder) does not exist ... did the + * user give us a path or just a name? + */ + + if (session_path.find (G_DIR_SEPARATOR) == string::npos) { + /* user gave session name with no path info, use + default session folder. + */ + session_name = ARDOUR_COMMAND_LINE::session_name; + session_path = Glib::build_filename (Config->get_default_session_parent_dir (), session_name); + } else { + session_name = basename_nosuffix (ARDOUR_COMMAND_LINE::session_name); + } } } |