Ensure double-click on session file in findoer on osx succeeds.

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4185 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Nick Mainsbridge 2008-11-17 07:47:06 +00:00
parent ed9869035f
commit 489278f0f7
2 changed files with 16 additions and 3 deletions

View file

@ -438,6 +438,8 @@ NewSessionDialog::NewSessionDialog()
m_notebook->show();
m_notebook->show_all_children();
engine_page_session_folder = X_("");
engine_page_session_name = X_("");
set_default_response (Gtk::RESPONSE_OK);
if (!ARDOUR_COMMAND_LINE::session_name.length()) {
@ -534,13 +536,13 @@ void
NewSessionDialog::set_session_name (const Glib::ustring& name)
{
m_name->set_text (name);
engine_page_session_name = name;
}
void
NewSessionDialog::set_session_folder(const Glib::ustring& dir)
{
Glib::ustring realdir = dir;
char* res;
/* this little tangled mess is a result of 4 things:
@ -560,15 +562,17 @@ NewSessionDialog::set_session_folder(const Glib::ustring& dir)
char buf[PATH_MAX];
if((res = realpath (dir.c_str(), buf)) != 0) {
if(realpath (dir.c_str(), buf) != 0) {
if (!Glib::file_test (dir, Glib::FILE_TEST_IS_DIR)) {
realdir = Glib::path_get_dirname (realdir);
}
m_folder->set_current_folder (realdir);
engine_page_session_folder = realdir;
}
#else
char* res;
if (!Glib::file_test (dir, Glib::FILE_TEST_IS_DIR)) {
realdir = Glib::path_get_dirname (realdir);
cerr << "didn't exist, use " << realdir << endl;
@ -606,6 +610,9 @@ NewSessionDialog::session_name() const
case NewPage:
case EnginePage:
/* new or audio setup pages */
if (!(page_set & OpenPage) && !(page_set & NewPage)) {
return Glib::filename_from_utf8(engine_page_session_name);
}
return Glib::filename_from_utf8(m_name->get_text());
default:
break;
@ -626,8 +633,12 @@ NewSessionDialog::session_folder() const
return Glib::filename_from_utf8(m_folder->get_filename());
case EnginePage:
if (!(page_set & OpenPage) && !(page_set & NewPage)) {
/* just engine page, nothing else */
return Glib::filename_from_utf8(engine_page_session_folder);
}
if (page_set == EnginePage) {
/* just engine page, nothing else : use m_folder since it should be set */
/* use m_folder since it should be set */
return Glib::filename_from_utf8(m_folder->get_filename());
}
break;

View file

@ -215,6 +215,8 @@ protected:
bool on_new_session_page;
bool have_engine;
Glib::ustring engine_page_session_folder;
Glib::ustring engine_page_session_name;
};
#endif // NEW_SESSION_DIALOG_H