No-op; rename a whole load of wx constants to their shorter equivalents.
[dcpomatic.git] / src / wx / kdm_dialog.cc
index b5ebd1e968c79dd0e1d11406244e24d5414e3eb3..8294a12aa9b6d3dc3e48236be33e0af2ba671c67 100644 (file)
 #include "kdm_timing_panel.h"
 #include "kdm_output_panel.h"
 #include "kdm_cpl_panel.h"
+#include "confirm_kdm_email_dialog.h"
 #include "lib/film.h"
 #include "lib/screen.h"
 #include "lib/screen_kdm.h"
 #include "lib/send_kdm_email_job.h"
 #include "lib/job_manager.h"
 #include "lib/cinema_kdms.h"
+#include "lib/config.h"
+#include "lib/cinema.h"
 #include <libcxml/cxml.h>
 #include <dcp/exceptions.h>
 #include <wx/treectrl.h>
@@ -103,7 +106,7 @@ KDMDialog::KDMDialog (wxWindow* parent, shared_ptr<const Film> film)
 
        _screens->ScreensChanged.connect (boost::bind (&KDMDialog::setup_sensitivity, this));
        _timing->TimingChanged.connect (boost::bind (&KDMDialog::setup_sensitivity, this));
-       _make->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&KDMDialog::make_clicked, this));
+       _make->Bind (wxEVT_BUTTON, boost::bind (&KDMDialog::make_clicked, this));
 
        setup_sensitivity ();
 
@@ -148,15 +151,36 @@ KDMDialog::make_clicked ()
                }
 
                if (_output->email ()) {
-                       JobManager::instance()->add (
-                               shared_ptr<Job> (new SendKDMEmailJob (
-                                                        CinemaKDMs::collect (screen_kdms),
-                                                        _output->name_format(),
-                                                        name_values,
-                                                        film->dcp_name(),
-                                                        film->log()
-                                                        ))
-                               );
+
+                       list<CinemaKDMs> const cinema_kdms = CinemaKDMs::collect (screen_kdms);
+
+                       bool ok = true;
+
+                       if (Config::instance()->confirm_kdm_email ()) {
+                               list<string> emails;
+                               BOOST_FOREACH (CinemaKDMs i, cinema_kdms) {
+                                       BOOST_FOREACH (string j, i.cinema->emails) {
+                                               emails.push_back (j);
+                                       }
+                               }
+
+                               ConfirmKDMEmailDialog* d = new ConfirmKDMEmailDialog (this, emails);
+                               if (d->ShowModal() == wxID_CANCEL) {
+                                       ok = false;
+                               }
+                       }
+
+                       if (ok) {
+                               JobManager::instance()->add (
+                                       shared_ptr<Job> (new SendKDMEmailJob (
+                                                                cinema_kdms,
+                                                                _output->name_format(),
+                                                                name_values,
+                                                                film->dcp_name(),
+                                                                film->log()
+                                                                ))
+                                       );
+                       }
                }
        } catch (dcp::NotEncryptedError& e) {
                error_dialog (this, _("CPL's content is not encrypted."));