From: Carl Hetherington Date: Sun, 5 Mar 2023 10:48:46 +0000 (+0100) Subject: Catch exceptions from some calls to write_metadata(). X-Git-Tag: v2.16.46~2 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=79f957a6f37276f71cf98d4fa1ae5e0ab3beb76d Catch exceptions from some calls to write_metadata(). --- diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 1923a12a3..d40976094 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -614,14 +614,22 @@ private: void file_save () { - _film->write_metadata (); + try { + _film->write_metadata (); + } catch (exception& e) { + error_dialog(this, _("Could not save project."), std_to_wx(e.what())); + } } void file_save_as_template () { SaveTemplateDialog dialog(this); if (dialog.ShowModal() == wxID_OK) { - Config::instance()->save_template(_film, dialog.name()); + try { + Config::instance()->save_template(_film, dialog.name()); + } catch (exception& e) { + error_dialog(this, _("Could not save template."), std_to_wx(e.what())); + } } } @@ -633,7 +641,11 @@ private: auto film = make_shared(dialog.path()); film->copy_from (_film); film->set_name(dialog.path().filename().generic_string()); - film->write_metadata (); + try { + film->write_metadata(); + } catch (exception& e) { + error_dialog(this, _("Could not duplicate project."), std_to_wx(e.what())); + } } } @@ -645,8 +657,12 @@ private: auto film = make_shared(dialog.path()); film->copy_from (_film); film->set_name(dialog.path().filename().generic_string()); - film->write_metadata (); - set_film (film); + try { + film->write_metadata (); + set_film (film); + } catch (exception& e) { + error_dialog(this, _("Could not duplicate project."), std_to_wx(e.what())); + } } }