X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fcheck_content_change_job.cc;h=e1226e79c6af3ae7c21cc74115875f9711a1111d;hp=783a2ac010521e989c636af307964955b256029c;hb=f515b8daea9d28200be803bb64ff17e9f30343c4;hpb=f0f4b2371ff5cd6fc39239a3c201bae0c033d21f diff --git a/src/lib/check_content_change_job.cc b/src/lib/check_content_change_job.cc index 783a2ac01..e1226e79c 100644 --- a/src/lib/check_content_change_job.cc +++ b/src/lib/check_content_change_job.cc @@ -33,9 +33,11 @@ using std::list; using std::cout; using boost::shared_ptr; -CheckContentChangeJob::CheckContentChangeJob (shared_ptr film, shared_ptr following) +/** @param gui true if we are running this job from the GUI, false if it's the CLI */ +CheckContentChangeJob::CheckContentChangeJob (shared_ptr film, shared_ptr following, bool gui) : Job (film) , _following (following) + , _gui (gui) { } @@ -43,7 +45,7 @@ CheckContentChangeJob::CheckContentChangeJob (shared_ptr film, share string CheckContentChangeJob::name () const { - return _("Check content for changes"); + return _("Checking content for changes"); } string @@ -79,18 +81,33 @@ CheckContentChangeJob::run () JobManager::instance()->add(shared_ptr(new ExamineContentJob(_film, i))); } - set_progress (1); - set_state (FINISHED_OK); - if (!changed.empty()) { - string m = _("Some files have been changed since they were added to the project.\n\nThese files will now be re-examined, so you may need to check their settings."); - if (_following) { - /* I'm assuming that _following is a make DCP job */ - m += " "; - m += _("Choose 'Make DCP' again when you have done this."); + if (_gui) { + string m = _("Some files have been changed since they were added to the project.\n\nThese files will now be re-examined, so you may need to check their settings."); + if (_following) { + /* I'm assuming that _following is a make DCP job */ + m += " "; + m += _("Choose 'Make DCP' again when you have done this."); + } + set_message (m); + } else { + set_progress (1); + set_state (FINISHED_ERROR); + set_error ( + _("Some files have been changed since they were added to the project. Open the project in DCP-o-matic, check the settings, then save it before trying again."), + "" + ); + return; } - set_message (m); } else if (_following) { JobManager::instance()->add (_following); } + + /* Only set this job as finished once we have added the following job, otherwise I think + it's possible that the tests will sporadically fail if they check for all jobs being + complete in the gap between this one finishing and _following being added. + */ + + set_progress (1); + set_state (FINISHED_OK); }