Add a load of explicit keywords.
[dcpomatic.git] / src / tools / dcpomatic.cc
index 15babbb612f85e83bf2780f50513f09417797b1b..b221201435deac4504cf1090b2602e2edac9457a 100644 (file)
@@ -113,7 +113,7 @@ using dcp::raw_convert;
 class FilmChangedClosingDialog : public boost::noncopyable
 {
 public:
-       FilmChangedClosingDialog (string name)
+       explicit FilmChangedClosingDialog (string name)
        {
                _dialog = new wxMessageDialog (
                        0,
@@ -146,7 +146,7 @@ private:
 class FilmChangedDuplicatingDialog : public boost::noncopyable
 {
 public:
-       FilmChangedDuplicatingDialog (string name)
+       explicit FilmChangedDuplicatingDialog (string name)
        {
                _dialog = new wxMessageDialog (
                        0,
@@ -184,6 +184,7 @@ private:
 #define NEEDS_SELECTED_CONTENT        0x10
 #define NEEDS_SELECTED_VIDEO_CONTENT  0x20
 #define NEEDS_CLIPBOARD               0x40
+#define NEEDS_ENCRYPTION              0x80
 
 map<wxMenuItem*, int> menu_items;
 
@@ -222,7 +223,7 @@ enum {
 class DOMFrame : public wxFrame
 {
 public:
-       DOMFrame (wxString const & title)
+       explicit DOMFrame (wxString const & title)
                : wxFrame (NULL, -1, title)
                , _video_waveform_dialog (0)
                , _hints_dialog (0)
@@ -400,6 +401,7 @@ public:
                if (_film->directory()) {
                        Config::instance()->add_to_history (_film->directory().get());
                }
+               _film->Changed.connect (boost::bind (&DOMFrame::set_menu_sensitivity, this));
        }
 
        shared_ptr<Film> film () const {
@@ -730,7 +732,9 @@ private:
                                d->cpl (),
                                dcp::LocalTime ("2012-01-01T01:00:00+00:00"),
                                dcp::LocalTime ("2112-01-01T01:00:00+00:00"),
-                               dcp::MODIFIED_TRANSITIONAL_1
+                               dcp::MODIFIED_TRANSITIONAL_1,
+                               true,
+                               0
                                );
                } catch (dcp::NotEncryptedError& e) {
                        error_dialog (this, _("CPL's content is not encrypted."));
@@ -979,6 +983,10 @@ private:
                                enabled = false;
                        }
 
+                       if ((j->second & NEEDS_ENCRYPTION) && (!_film || !_film->encrypted())) {
+                               enabled = false;
+                       }
+
                        j->first->Enable (enabled);
                }
        }
@@ -1068,7 +1076,7 @@ private:
                add_item (jobs_menu, _("Make DCP in &batch converter\tCtrl-B"), ID_jobs_make_dcp_batch, NEEDS_FILM | NOT_DURING_DCP_CREATION);
                jobs_menu->AppendSeparator ();
                add_item (jobs_menu, _("Make &KDMs...\tCtrl-K"), ID_jobs_make_kdms, NEEDS_FILM);
-               add_item (jobs_menu, _("Make DKDM for DCP-o-matic..."), ID_jobs_make_self_dkdm, NEEDS_FILM);
+               add_item (jobs_menu, _("Make DKDM for DCP-o-matic..."), ID_jobs_make_self_dkdm, NEEDS_FILM | NEEDS_ENCRYPTION);
                jobs_menu->AppendSeparator ();
                add_item (jobs_menu, _("Export...\tCtrl-E"), ID_jobs_export, NEEDS_FILM);
                jobs_menu->AppendSeparator ();