diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-12-06 19:56:33 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-12-06 19:56:33 +0000 |
commit | 9884773eea9764b6dacd3ade6a1d49cf389fe398 (patch) | |
tree | b46b3e936a09bf40954c6b3f00ebc7f59f632723 /gtk2_ardour/export_dialog.cc | |
parent | 27bfb0f9e2db321d9596912ed95ccb6bcd00bc57 (diff) |
various fixes for exporting, including correct handling of errors during export which previously would hang when using jack1 because jack_set_freewheel() was called from inside a process() callback; use shared_ptr<Route> in parts of export code that weren't using them before; fix up generation of export filenames so that Glib::build_filename() is used and non-existent folders are ignored
git-svn-id: svn://localhost/ardour2/branches/3.0@13610 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/export_dialog.cc')
-rw-r--r-- | gtk2_ardour/export_dialog.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc index 9d707678cf..5e6812429a 100644 --- a/gtk2_ardour/export_dialog.cc +++ b/gtk2_ardour/export_dialog.cc @@ -21,6 +21,8 @@ #include <sigc++/signal.h> +#include <gtkmm/messagedialog.h> + #include "ardour/audioregion.h" #include "ardour/export_status.h" #include "ardour/export_handler.h" @@ -94,8 +96,6 @@ ExportDialog::set_session (ARDOUR::Session* s) channel_selector->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings_and_example_filename)); file_notebook->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings_and_example_filename)); - status->Aborting.connect (abort_connection, invalidator (*this), boost::bind (&ExportDialog::notify_errors, this), gui_context()); - update_warnings_and_example_filename (); } @@ -323,6 +323,7 @@ ExportDialog::show_progress () progress_connection = Glib::signal_timeout().connect (sigc::mem_fun(*this, &ExportDialog::progress_timeout), 100); gtk_main_iteration (); + while (status->running) { if (gtk_events_pending()) { gtk_main_iteration (); @@ -339,9 +340,11 @@ ExportDialog::show_progress () ns->nag (); delete ns; } - - status->finish (); + } else { + notify_errors (); } + + status->finish (); } gint |