diff options
author | Sakari Bergen <sakari.bergen@beatwaves.net> | 2013-11-23 19:11:31 +0200 |
---|---|---|
committer | Sakari Bergen <sakari.bergen@beatwaves.net> | 2013-11-23 19:11:31 +0200 |
commit | f1db14923e5d14331d1bf869d32862a2cf3460bb (patch) | |
tree | 97b317b9a36665f80033d51e9e9220875cf50504 /gtk2_ardour/export_dialog.cc | |
parent | 52309c0c4fc107cdde9a99f2340fe4d8cf4ff382 (diff) |
Hande export initialization exceptions gracefully
Diffstat (limited to 'gtk2_ardour/export_dialog.cc')
-rw-r--r-- | gtk2_ardour/export_dialog.cc | 15 |
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 |