summaryrefslogtreecommitdiff
path: root/src/lib/job.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-02-11 12:04:27 +0000
committerCarl Hetherington <cth@carlh.net>2014-02-11 12:04:27 +0000
commit8aeb741ccbe2edb528e98a431bf55459a6836a9b (patch)
treea14569b531d9867683a1ac1c94c8e0eb406906a8 /src/lib/job.cc
parent4ba8772aef261da209bbb882325fd61a8b479fd7 (diff)
parent22f2cd94132f93a159c2ce9fe263771cb5a5dbdf (diff)
Merge master.
Diffstat (limited to 'src/lib/job.cc')
-rw-r--r--src/lib/job.cc26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/lib/job.cc b/src/lib/job.cc
index 05a90524c..b543a043f 100644
--- a/src/lib/job.cc
+++ b/src/lib/job.cc
@@ -68,9 +68,6 @@ Job::run_wrapper ()
} catch (libdcp::FileError& e) {
- set_progress (1);
- set_state (FINISHED_ERROR);
-
string m = String::compose (_("An error occurred whilst handling the file %1."), boost::filesystem::path (e.filename()).leaf());
try {
@@ -84,39 +81,48 @@ Job::run_wrapper ()
}
set_error (e.what(), m);
-
- } catch (OpenFileError& e) {
-
set_progress (1);
set_state (FINISHED_ERROR);
+
+ } catch (OpenFileError& e) {
set_error (
String::compose (_("Could not open %1"), e.file().string()),
String::compose (_("DCP-o-matic could not open the file %1. Perhaps it does not exist or is in an unexpected format."), e.file().string())
);
+ set_progress (1);
+ set_state (FINISHED_ERROR);
+
} catch (boost::thread_interrupted &) {
set_state (FINISHED_CANCELLED);
-
- } catch (std::exception& e) {
+ } catch (std::bad_alloc& e) {
+
+ set_error (_("Out of memory"), _("There was not enough memory to do this."));
set_progress (1);
set_state (FINISHED_ERROR);
+
+ } catch (std::exception& e) {
+
set_error (
e.what (),
_("It is not known what caused this error. The best idea is to report the problem to the DCP-o-matic mailing list (carl@dcpomatic.com)")
);
- } catch (...) {
-
set_progress (1);
set_state (FINISHED_ERROR);
+
+ } catch (...) {
+
set_error (
_("Unknown error"),
_("It is not known what caused this error. The best idea is to report the problem to the DCP-o-matic mailing list (carl@dcpomatic.com)")
);
+ set_progress (1);
+ set_state (FINISHED_ERROR);
}
}