diff options
author | Carl Hetherington <carl@carlh.net> | 2011-05-04 11:32:35 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-05-04 11:32:35 +0000 |
commit | bcb554a1909b24182a881b9a0506c8467dc36687 (patch) | |
tree | b0df0250fceefc11060147513e6af135fe9c4b70 /gtk2_ardour | |
parent | 56b70dcc0b64d34d346514ecfb7c528b140cb743 (diff) |
Fix problems with sessions being saved as foo.ardour.ardour when loaded using the session file name (#4026).
git-svn-id: svn://localhost/ardour2/branches/3.0@9471 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 449ce2f376..79e89499b8 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -2166,7 +2166,7 @@ ARDOUR_UI::save_state_canfail (string name, bool switch_to_it) return ret; } } - cerr << "SS canfail\n"; + save_ardour_state (); /* XXX cannot fail? yeah, right ... */ return 0; } @@ -2503,7 +2503,7 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri int ret = -1; bool likely_new = false; - if (! load_template.empty()) { + if (!load_template.empty()) { should_be_new = true; template_name = load_template; } @@ -2517,14 +2517,17 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri to find the session. */ - if (ARDOUR_COMMAND_LINE::session_name.find (statefile_suffix) != string::npos) { + string::size_type suffix = ARDOUR_COMMAND_LINE::session_name.find (statefile_suffix); + + if (suffix != string::npos) { session_path = Glib::path_get_dirname (ARDOUR_COMMAND_LINE::session_name); + session_name = ARDOUR_COMMAND_LINE::session_name.substr (0, suffix); + session_name = Glib::path_get_basename (session_name); } else { session_path = ARDOUR_COMMAND_LINE::session_name; + session_name = Glib::path_get_basename (ARDOUR_COMMAND_LINE::session_name); } - session_name = Glib::path_get_basename (ARDOUR_COMMAND_LINE::session_name); - } else { bool const apply = run_startup (should_be_new, load_template); @@ -2680,7 +2683,9 @@ ARDOUR_UI::close_session() goto_editor_window (); } -/** @return -2 if the load failed because we are not connected to the AudioEngine */ +/** @param snap_name Snapshot name (without .ardour suffix). + * @return -2 if the load failed because we are not connected to the AudioEngine. + */ int ARDOUR_UI::load_session (const std::string& path, const std::string& snap_name, std::string mix_template) { |