X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fjob.cc;h=201397f08e0a79c5a75725163ba059bcb231404b;hb=7561918187d51eadcd59904a71c1eda30cc6ab31;hp=f3d7deac02a4c5426674b0765083c3c8dbc55b6d;hpb=bd8fa9a370f1739952c83107352baa08c79d095e;p=dcpomatic.git diff --git a/src/lib/job.cc b/src/lib/job.cc index f3d7deac0..201397f08 100644 --- a/src/lib/job.cc +++ b/src/lib/job.cc @@ -27,10 +27,13 @@ #include "job.h" #include "util.h" -using namespace std; -using namespace boost; +using std::string; +using std::list; +using std::stringstream; +using boost::shared_ptr; /** @param s Film that we are operating on. + * @param req Job that must be completed before this job is run. */ Job::Job (shared_ptr f, shared_ptr req) : _film (f) @@ -64,7 +67,7 @@ Job::run_wrapper () set_progress (1); set_state (FINISHED_ERROR); - set_error (String::compose ("%1 (%2)", e.what(), filesystem::path (e.filename()).leaf())); + set_error (String::compose ("%1 (%2)", e.what(), boost::filesystem::path (e.filename()).leaf())); } catch (std::exception& e) { @@ -75,6 +78,7 @@ Job::run_wrapper () } } +/** @return true if this job is new (ie has not started running) */ bool Job::is_new () const { @@ -125,20 +129,10 @@ Job::set_state (State s) if (_state == FINISHED_OK || _state == FINISHED_ERROR) { _ran_for = elapsed_time (); + Finished (); } } -/** A hack to work around our lack of cross-thread - * signalling; this emits Finished, and listeners - * assume that it will be emitted in the GUI thread, - * so this method must be called from the GUI thread. - */ -void -Job::emit_finished () -{ - Finished (); -} - /** @return Time (in seconds) that this job has been running */ int Job::elapsed_time () const @@ -244,7 +238,7 @@ Job::status () const float const p = overall_progress (); int const t = elapsed_time (); int const r = remaining_time (); - + stringstream s; if (!finished () && p >= 0 && t > 10 && r > 0) { s << rint (p * 100) << "%; " << seconds_to_approximate_hms (r) << " remaining";