summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-03-05 11:48:46 +0100
committerCarl Hetherington <cth@carlh.net>2023-03-05 11:48:46 +0100
commit79f957a6f37276f71cf98d4fa1ae5e0ab3beb76d (patch)
tree436948dc55e4adc11a8734e0bc065a333a6b3281 /src
parent4ec9f7096050e9d1107628ffc28b785fba3020a0 (diff)
Catch exceptions from some calls to write_metadata().
Diffstat (limited to 'src')
-rw-r--r--src/tools/dcpomatic.cc26
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()));
+ }
}
}