diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-03-05 11:48:46 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-03-05 11:48:46 +0100 |
| commit | 79f957a6f37276f71cf98d4fa1ae5e0ab3beb76d (patch) | |
| tree | 436948dc55e4adc11a8734e0bc065a333a6b3281 /src | |
| parent | 4ec9f7096050e9d1107628ffc28b785fba3020a0 (diff) | |
Catch exceptions from some calls to write_metadata().
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/dcpomatic.cc | 26 |
1 files changed, 21 insertions, 5 deletions
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<Film>(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<Film>(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())); + } } } |
