No-op; rename a whole load of wx constants to their shorter equivalents.
[dcpomatic.git] / src / wx / kdm_dialog.cc
index cd018686ed4a9a6308c059b310ba2e4f7f4b3661..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>
@@ -55,7 +58,7 @@ KDMDialog::KDMDialog (wxWindow* parent, shared_ptr<const Film> film)
        wxBoxSizer* left = new wxBoxSizer (wxVERTICAL);
        wxBoxSizer* right = new wxBoxSizer (wxVERTICAL);
 
-       horizontal->Add (left, 1, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_X_GAP * 2);
+       horizontal->Add (left, 1, wxEXPAND | wxRIGHT, DCPOMATIC_SIZER_X_GAP * 4);
        horizontal->Add (right, 1, wxEXPAND);
 
        /* Font for sub-headings */
@@ -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 ();
 
@@ -134,9 +137,9 @@ KDMDialog::make_clicked ()
                        );
 
                dcp::NameFormat::Map name_values;
-               name_values["film_name"] = film->name();
-               name_values["from"] = dcp::LocalTime(_timing->from()).date() + " " + dcp::LocalTime(_timing->from()).time_of_day();
-               name_values["to"] = dcp::LocalTime(_timing->until()).date() + " " + dcp::LocalTime(_timing->until()).time_of_day();
+               name_values['f'] = film->name();
+               name_values['b'] = dcp::LocalTime(_timing->from()).date() + " " + dcp::LocalTime(_timing->from()).time_of_day();
+               name_values['e'] = dcp::LocalTime(_timing->until()).date() + " " + dcp::LocalTime(_timing->until()).time_of_day();
 
                if (_output->write_to ()) {
                        ScreenKDM::write_files (
@@ -145,16 +148,39 @@ KDMDialog::make_clicked ()
                                _output->name_format(),
                                name_values
                                );
-               } else {
-                       JobManager::instance()->add (
-                               shared_ptr<Job> (new SendKDMEmailJob (
-                                                        CinemaKDMs::collect (screen_kdms),
-                                                        _output->name_format(),
-                                                        name_values,
-                                                        film->dcp_name(),
-                                                        film->log()
-                                                        ))
-                               );
+               }
+
+               if (_output->email ()) {
+
+                       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."));