mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-30 18:37:40 +01:00
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:
parent
ed9869035f
commit
489278f0f7
2 changed files with 16 additions and 3 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue