summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_dialog.cc
diff options
context:
space:
mode:
authorSakari Bergen <sakari.bergen@beatwaves.net>2013-11-23 19:11:31 +0200
committerSakari Bergen <sakari.bergen@beatwaves.net>2013-11-23 19:11:31 +0200
commitf1db14923e5d14331d1bf869d32862a2cf3460bb (patch)
tree97b317b9a36665f80033d51e9e9220875cf50504 /gtk2_ardour/export_dialog.cc
parent52309c0c4fc107cdde9a99f2340fe4d8cf4ff382 (diff)
Hande export initialization exceptions gracefully
Diffstat (limited to 'gtk2_ardour/export_dialog.cc')
-rw-r--r--gtk2_ardour/export_dialog.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc
index a64acd1680..1458747786 100644
--- a/gtk2_ardour/export_dialog.cc
+++ b/gtk2_ardour/export_dialog.cc
@@ -215,9 +215,9 @@ ExportDialog::init_components ()
}
void
-ExportDialog::notify_errors ()
+ExportDialog::notify_errors (bool force)
{
- if (status->errors()) {
+ if (force || status->errors()) {
std::string txt = _("Export has been aborted due to an error!\nSee the Log for details.");
Gtk::MessageDialog msg (txt, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
msg.run();
@@ -303,9 +303,14 @@ ExportDialog::show_conflicting_files ()
void
ExportDialog::do_export ()
{
- profile_manager->prepare_for_export ();
- handler->do_export ();
- show_progress ();
+ try {
+ profile_manager->prepare_for_export ();
+ handler->do_export ();
+ show_progress ();
+ } catch(std::exception & e) {
+ error << string_compose (_("Export initialization failed: %1"), e.what()) << endmsg;
+ notify_errors(true);
+ }
}
void