summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_dialog.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-12-06 19:56:33 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-12-06 19:56:33 +0000
commit9884773eea9764b6dacd3ade6a1d49cf389fe398 (patch)
treeb46b3e936a09bf40954c6b3f00ebc7f59f632723 /gtk2_ardour/export_dialog.cc
parent27bfb0f9e2db321d9596912ed95ccb6bcd00bc57 (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.cc11
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