X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fjob.cc;h=9c9530b7ad9bf16e89eaa08a110e1374ea20319d;hb=HEAD;hp=811e4c983672f27fb4a996280aacb86d3916ada9;hpb=6581d4d367c71e69820ff081334d93e7b6711063;p=dcpomatic.git diff --git a/src/lib/job.cc b/src/lib/job.cc index 811e4c983..9c9530b7a 100644 --- a/src/lib/job.cc +++ b/src/lib/job.cc @@ -59,6 +59,7 @@ Job::Job (shared_ptr film) , _state (NEW) , _sub_start_time (0) , _progress (0) + , _rate_limit_progress(true) { } @@ -111,10 +112,10 @@ Job::run_wrapper () } catch (dcp::FileError& e) { - string m = String::compose (_("An error occurred whilst handling the file %1."), boost::filesystem::path (e.filename()).leaf()); + string m = String::compose(_("An error occurred whilst handling the file %1."), e.filename().filename()); try { - auto const s = boost::filesystem::space (e.filename()); + auto const s = dcp::filesystem::space(e.filename()); if (s.available < pow (1024, 3)) { m += N_("\n\n"); m += _("The drive that the film is stored on is low in disc space. Free some more space and try again."); @@ -169,7 +170,7 @@ Job::run_wrapper () String::compose (_("Could not open %1"), e.file().string()), String::compose ( _("DCP-o-matic could not open the file %1 (%2). Perhaps it does not exist or is in an unexpected format."), - boost::filesystem::absolute (e.file()).string(), + dcp::filesystem::absolute(e.file()).string(), e.what() ) ); @@ -184,7 +185,7 @@ Job::run_wrapper () String::compose (_("Could not open %1"), e.path1().string ()), String::compose ( _("DCP-o-matic could not open the file %1 (%2). Perhaps it does not exist or is in an unexpected format."), - boost::filesystem::absolute (e.path1()).string(), + dcp::filesystem::absolute(e.path1()).string(), e.what() ) ); @@ -241,6 +242,12 @@ Job::run_wrapper () set_progress(1); set_state(FINISHED_ERROR); + } catch (MissingConfigurationError& e) { + + set_error(e.what()); + set_progress(1); + set_state(FINISHED_ERROR); + } catch (std::exception& e) { set_error ( @@ -432,7 +439,7 @@ Job::set_progress (float p, bool force) { check_for_interruption_or_pause (); - if (!force) { + if (!force && _rate_limit_progress) { /* Check for excessively frequent progress reporting */ boost::mutex::scoped_lock lm (_progress_mutex); struct timeval now; @@ -735,3 +742,11 @@ Job::set_message (string m) boost::mutex::scoped_lock lm (_state_mutex); _message = m; } + + +void +Job::set_rate_limit_progress(bool rate_limit) +{ + _rate_limit_progress = rate_limit; +} +