- if (_output->write_to()) {
- ScreenKDM::write_files (decrypted.content_title_text(), screen_kdms, _output->directory());
- /* XXX: proper plural form support in wxWidgets? */
- wxString s = screen_kdms.size() == 1 ? _("%d KDM written to %s") : _("%d KDMs written to %s");
- message_dialog (
- this,
- wxString::Format (s, int(screen_kdms.size()), std_to_wx(_output->directory().string()).data())
- );
- } else {
- string film_name = decrypted.annotation_text ();
- if (film_name.empty ()) {
- film_name = decrypted.content_title_text ();
- }
- shared_ptr<Job> job (new SendKDMEmailJob (
- film_name,
- decrypted.content_title_text(),
- _timing->from(), _timing->until(),
- CinemaKDMs::collect (screen_kdms),
- shared_ptr<Log> ()
- ));
-
- JobManager::instance()->add (job);
+ pair<shared_ptr<Job>, int> result = _output->make (
+ screen_kdms, decrypted.content_title_text(), _timing, bind (&DOMFrame::confirm_overwrite, this, _1), shared_ptr<Log> ()
+ );
+
+ if (result.first) {
+ JobManager::instance()->add (result.first);