summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-07-16 00:15:20 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-07-16 00:15:20 +0000
commit64624b4042f18a4bd9fac17edba59e01201badd0 (patch)
treeb4aeca6801dc6fe4743e9b27dd4332100c662b44 /gtk2_ardour/ardour_ui.cc
parent25053fa3effb786e3045007b7229605acaee9eec (diff)
make dbl-click on foobar.ardour open ardour (OS X)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@7423 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r--gtk2_ardour/ardour_ui.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index cd0504f7df..c30981297b 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -34,6 +34,7 @@
#include <gtkmm/messagedialog.h>
#include <gtkmm/accelmap.h>
+#include <gtkmm2ext/application.h>
#include <pbd/error.h>
#include <pbd/basename.h>
@@ -643,6 +644,11 @@ Please consider the possibilities, and perhaps (re)start JACK."));
void
ARDOUR_UI::startup ()
{
+ Application* app = Application::instance();
+
+ app->ShouldQuit.connect (sigc::mem_fun (*this, &ARDOUR_UI::queue_finish));
+ app->ShouldLoad.connect (sigc::mem_fun (*this, &ARDOUR_UI::idle_load));
+
string name, path;
new_session_dialog = new NewSessionDialog();
@@ -653,7 +659,9 @@ ARDOUR_UI::startup ()
if (audio_setup) {
new_session_dialog->engine_control.set_state (*audio_setup);
}
-
+
+ app->ready ();
+
if (!get_session_parameters (backend_audio_is_running, ARDOUR_COMMAND_LINE::new_session)) {
return;
}
@@ -2347,6 +2355,7 @@ void
ARDOUR_UI::idle_load (const Glib::ustring& 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));
@@ -2354,13 +2363,13 @@ ARDOUR_UI::idle_load (const Glib::ustring& path)
/* /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;
if (new_session_dialog) {
-
/* make it break out of Dialog::run() and
start again.
*/