Move upload-DCP-to-TMS button to preferences.
authorCarl Hetherington <cth@carlh.net>
Mon, 8 Jun 2020 16:21:37 +0000 (18:21 +0200)
committerCarl Hetherington <cth@carlh.net>
Mon, 8 Jun 2020 16:21:37 +0000 (18:21 +0200)
src/lib/config.cc
src/lib/config.h
src/lib/film.cc
src/lib/film.h
src/lib/transcode_job.cc
src/wx/dcp_panel.cc
src/wx/dcp_panel.h
src/wx/full_config_dialog.cc

index a138cc8796f47a24c22ac92f0e0e9bfe11790e8e..b1f2a4f188a8f114d165099267aafe3e6761b77d 100644 (file)
@@ -104,7 +104,7 @@ Config::set_defaults ()
        _default_j2k_bandwidth = 150000000;
        _default_audio_delay = 0;
        _default_interop = true;
-       _default_upload_after_make_dcp = false;
+       _upload_after_make_dcp = false;
        _mail_server = "";
        _mail_port = 25;
        _mail_protocol = EMAIL_PROTOCOL_AUTO;
@@ -317,7 +317,11 @@ try
                _dcp_issuer = f.string_child ("DCPIssuer");
        }
 
-       _default_upload_after_make_dcp = f.optional_bool_child("DefaultUploadAfterMakeDCP").get_value_or (false);
+       optional<bool> up = f.optional_bool_child("UploadAfterMakeDCP");
+       if (!up) {
+               up = f.optional_bool_child("DefaultUploadAfterMakeDCP");
+       }
+       _upload_after_make_dcp = up.get_value_or (false);
        _dcp_creator = f.optional_string_child ("DCPCreator").get_value_or ("");
 
        if (version && version.get() >= 2) {
@@ -725,8 +729,8 @@ Config::write_config () const
        root->add_child("DCPIssuer")->add_child_text (_dcp_issuer);
        /* [XML] DCPIssuer Creator text to write into CPL files. */
        root->add_child("DCPCreator")->add_child_text (_dcp_creator);
-       /* [XML] DefaultUploadAfterMakeDCP 1 to default to uploading to a TMS after making a DCP, 0 to default to no upload. */
-       root->add_child("DefaultUploadAfterMakeDCP")->add_child_text (_default_upload_after_make_dcp ? "1" : "0");
+       /* [XML] UploadAfterMakeDCP 1 to upload to a TMS after making a DCP, 0 for no upload. */
+       root->add_child("UploadAfterMakeDCP")->add_child_text (_upload_after_make_dcp ? "1" : "0");
 
        /* [XML] ISDCFMetadata Default ISDCF metadata to use for new films; child tags are <code>&lt;ContentVersion&gt;</code>,
           <code>&lt;AudioLanguage&gt;</code>, <code>&lt;SubtitleLanguage&gt;</code>, <code>&lt;Territory&gt;</code>,
index 23f7ce0b3c885f1ac3e83cd9aea4227f4f1d8b49..4b7488d15825f9bd599fa5c5ee190caebd42a44b 100644 (file)
@@ -214,8 +214,8 @@ public:
                return _default_interop;
        }
 
-       bool default_upload_after_make_dcp () {
-               return _default_upload_after_make_dcp;
+       bool upload_after_make_dcp () {
+               return _upload_after_make_dcp;
        }
 
        void set_default_kdm_directory (boost::filesystem::path d) {
@@ -710,8 +710,8 @@ public:
                maybe_set (_default_interop, i);
        }
 
-       void set_default_upload_after_make_dcp (bool u) {
-               maybe_set (_default_upload_after_make_dcp, u);
+       void set_upload_after_make_dcp (bool u) {
+               maybe_set (_upload_after_make_dcp, u);
        }
 
        void set_mail_server (std::string s) {
@@ -1236,7 +1236,7 @@ private:
            the home directory will be offered.
        */
        boost::optional<boost::filesystem::path> _default_kdm_directory;
-       bool _default_upload_after_make_dcp;
+       bool _upload_after_make_dcp;
        std::list<boost::shared_ptr<Cinema> > _cinemas;
        std::list<boost::shared_ptr<DKDMRecipient> > _dkdm_recipients;
        std::string _mail_server;
index 93a22d18682dae76bc0fa353014587c72476928c..c04f2996f255fd4dabd0087012efb02d1e44a036 100644 (file)
@@ -160,7 +160,6 @@ Film::Film (optional<boost::filesystem::path> dir)
        , _audio_processor (0)
        , _reel_type (REELTYPE_SINGLE)
        , _reel_length (2000000000)
-       , _upload_after_make_dcp (Config::instance()->default_upload_after_make_dcp())
        , _reencode_j2k (false)
        , _user_explicit_video_frame_rate (false)
        , _user_explicit_container (false)
@@ -454,7 +453,6 @@ Film::metadata (bool with_content_paths) const
        }
        root->add_child("ReelType")->add_child_text (raw_convert<string> (static_cast<int> (_reel_type)));
        root->add_child("ReelLength")->add_child_text (raw_convert<string> (_reel_length));
-       root->add_child("UploadAfterMakeDCP")->add_child_text (_upload_after_make_dcp ? "1" : "0");
        root->add_child("ReencodeJ2K")->add_child_text (_reencode_j2k ? "1" : "0");
        root->add_child("UserExplicitVideoFrameRate")->add_child_text(_user_explicit_video_frame_rate ? "1" : "0");
        for (map<dcp::Marker, DCPTime>::const_iterator i = _markers.begin(); i != _markers.end(); ++i) {
@@ -602,7 +600,6 @@ Film::read_metadata (optional<boost::filesystem::path> path)
 
        _reel_type = static_cast<ReelType> (f.optional_number_child<int>("ReelType").get_value_or (static_cast<int>(REELTYPE_SINGLE)));
        _reel_length = f.optional_number_child<int64_t>("ReelLength").get_value_or (2000000000);
-       _upload_after_make_dcp = f.optional_bool_child("UploadAfterMakeDCP").get_value_or (false);
        _reencode_j2k = f.optional_bool_child("ReencodeJ2K").get_value_or(false);
        _user_explicit_video_frame_rate = f.optional_bool_child("UserExplicitVideoFrameRate").get_value_or(false);
 
@@ -1084,13 +1081,6 @@ Film::set_reel_length (int64_t r)
        _reel_length = r;
 }
 
-void
-Film::set_upload_after_make_dcp (bool u)
-{
-       ChangeSignaller<Film> ch (this, UPLOAD_AFTER_MAKE_DCP);
-       _upload_after_make_dcp = u;
-}
-
 void
 Film::set_reencode_j2k (bool r)
 {
@@ -1748,7 +1738,6 @@ Film::use_template (string name)
        _audio_processor = _template_film->_audio_processor;
        _reel_type = _template_film->_reel_type;
        _reel_length = _template_film->_reel_length;
-       _upload_after_make_dcp = _template_film->_upload_after_make_dcp;
        _isdcf_metadata = _template_film->_isdcf_metadata;
 }
 
index 7f7590210a045ad3a5a514e1720f5b1ec80b0ac0..64bb159c7ba7a2892c5d07d07b34cdc6e31c81f7 100644 (file)
@@ -224,7 +224,6 @@ public:
                AUDIO_PROCESSOR,
                REEL_TYPE,
                REEL_LENGTH,
-               UPLOAD_AFTER_MAKE_DCP,
                REENCODE_J2K,
                MARKERS,
                RATINGS,
@@ -307,10 +306,6 @@ public:
                return _reel_length;
        }
 
-       bool upload_after_make_dcp () const {
-               return _upload_after_make_dcp;
-       }
-
        std::string context_id () const {
                return _context_id;
        }
@@ -358,7 +353,6 @@ public:
        void set_audio_processor (AudioProcessor const * processor);
        void set_reel_type (ReelType);
        void set_reel_length (int64_t);
-       void set_upload_after_make_dcp (bool);
        void set_reencode_j2k (bool);
        void set_marker (dcp::Marker type, dcpomatic::DCPTime time);
        void unset_marker (dcp::Marker type);
@@ -450,7 +444,6 @@ private:
        ReelType _reel_type;
        /** Desired reel length in bytes, if _reel_type == REELTYPE_BY_LENGTH */
        int64_t _reel_length;
-       bool _upload_after_make_dcp;
        bool _reencode_j2k;
        /** true if the user has ever explicitly set the video frame rate of this film */
        bool _user_explicit_video_frame_rate;
index fb586b0825631da9e9a9efc79038103733735791..6d73a3673f665c86c1ccb2c15f38431f2c493316 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -22,6 +22,7 @@
  *  @brief A job which transcodes from one format to another.
  */
 
+#include "config.h"
 #include "transcode_job.h"
 #include "dcp_encoder.h"
 #include "upload_job.h"
@@ -101,7 +102,7 @@ TranscodeJob::run ()
                }
 
                /* XXX: this shouldn't be here */
-               if (_film->upload_after_make_dcp() && dynamic_pointer_cast<DCPEncoder>(_encoder)) {
+               if (Config::instance()->upload_after_make_dcp() && dynamic_pointer_cast<DCPEncoder>(_encoder)) {
                        shared_ptr<Job> job (new UploadJob (_film));
                        JobManager::instance()->add (job);
                }
index 4472a14bf6599871ea9828e631c04a213676aec2..0841ad3995f8e3c7ccb588030d3297cc94e29211 100644 (file)
@@ -111,8 +111,6 @@ DCPPanel::DCPPanel (wxNotebook* n, shared_ptr<Film> film, weak_ptr<FilmViewer> v
        _standard_label = create_label (_panel, _("Standard"), true);
        _standard = new wxChoice (_panel, wxID_ANY);
 
-       _upload_after_make_dcp = new CheckBox (_panel, _("Upload DCP to TMS after it is made"));
-
        _markers = new Button (_panel, _("Markers..."));
        _metadata = new Button (_panel, _("Metadata..."));
 
@@ -131,7 +129,6 @@ DCPPanel::DCPPanel (wxNotebook* n, shared_ptr<Film> film, weak_ptr<FilmViewer> v
        _reel_type->Bind             (wxEVT_CHOICE,   boost::bind (&DCPPanel::reel_type_changed, this));
        _reel_length->Bind           (wxEVT_SPINCTRL, boost::bind (&DCPPanel::reel_length_changed, this));
        _standard->Bind              (wxEVT_CHOICE,   boost::bind (&DCPPanel::standard_changed, this));
-       _upload_after_make_dcp->Bind (wxEVT_CHECKBOX, boost::bind (&DCPPanel::upload_after_make_dcp_changed, this));
        _markers->Bind               (wxEVT_BUTTON,   boost::bind (&DCPPanel::markers_clicked, this));
        _metadata->Bind              (wxEVT_BUTTON,   boost::bind (&DCPPanel::metadata_clicked, this));
 
@@ -205,7 +202,6 @@ DCPPanel::add_to_grid ()
        _reel_length_gb_label->Show (full);
        _standard_label->Show (full);
        _standard->Show (full);
-       _upload_after_make_dcp->Show (full);
        _markers->Show (full);
        _metadata->Show (full);
        _reencode_j2k->Show (full);
@@ -229,9 +225,6 @@ DCPPanel::add_to_grid ()
                _grid->Add (_standard, wxGBPosition (r, 1), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
                ++r;
 
-               _grid->Add (_upload_after_make_dcp, wxGBPosition (r, 0), wxGBSpan (1, 2));
-               ++r;
-
                wxBoxSizer* extra = new wxBoxSizer (wxHORIZONTAL);
                extra->Add (_markers, 1, wxRIGHT, DCPOMATIC_SIZER_X_GAP);
                extra->Add (_metadata, 1, wxRIGHT, DCPOMATIC_SIZER_X_GAP);
@@ -327,16 +320,6 @@ DCPPanel::standard_changed ()
        _film->set_interop (_standard->GetSelection() == 1);
 }
 
-void
-DCPPanel::upload_after_make_dcp_changed ()
-{
-       if (!_film) {
-               return;
-       }
-
-       _film->set_upload_after_make_dcp (_upload_after_make_dcp->GetValue ());
-}
-
 void
 DCPPanel::markers_clicked ()
 {
@@ -466,9 +449,6 @@ DCPPanel::film_changed (int p)
        case Film::REEL_LENGTH:
                checked_set (_reel_length, _film->reel_length() / 1000000000LL);
                break;
-       case Film::UPLOAD_AFTER_MAKE_DCP:
-               checked_set (_upload_after_make_dcp, _film->upload_after_make_dcp ());
-               break;
        case Film::CONTENT:
                setup_dcp_name ();
                break;
@@ -589,7 +569,6 @@ DCPPanel::set_film (shared_ptr<Film> film)
        film_changed (Film::AUDIO_PROCESSOR);
        film_changed (Film::REEL_TYPE);
        film_changed (Film::REEL_LENGTH);
-       film_changed (Film::UPLOAD_AFTER_MAKE_DCP);
        film_changed (Film::REENCODE_J2K);
 
        set_general_sensitivity(static_cast<bool>(_film));
@@ -613,7 +592,6 @@ DCPPanel::setup_sensitivity ()
        _encrypted->Enable              (_generally_sensitive);
        _reel_type->Enable              (_generally_sensitive && _film && !_film->references_dcp_video() && !_film->references_dcp_audio());
        _reel_length->Enable            (_generally_sensitive && _film && _film->reel_type() == REELTYPE_BY_LENGTH);
-       _upload_after_make_dcp->Enable  (_generally_sensitive);
        _markers->Enable                (_generally_sensitive && _film && !_film->interop());
        _metadata->Enable               (_generally_sensitive);
        _frame_rate_choice->Enable      (_generally_sensitive && _film && !_film->references_dcp_video());
index 258471ffd5a6c38e0fce071dba348b521ef116ea..7a7d138971b8cd1e5c5c3085f53c1e9d9bce1f37 100644 (file)
@@ -77,7 +77,6 @@ private:
        void show_audio_clicked ();
        void reel_type_changed ();
        void reel_length_changed ();
-       void upload_after_make_dcp_changed ();
        void markers_clicked ();
        void metadata_clicked ();
        void reencode_j2k_changed ();
@@ -143,7 +142,6 @@ private:
        wxStaticText* _reel_length_label;
        wxStaticText* _reel_length_gb_label;
        wxSpinCtrl* _reel_length;
-       wxCheckBox* _upload_after_make_dcp;
        wxButton* _markers;
        wxButton* _metadata;
        wxSizer* _audio_panel_sizer;
index a371690bd71af42ff0f4ef4ac8c2fc0b47355266..ab3dc08003e93ce4fc46f162f4b7557dca39706d 100644 (file)
@@ -379,9 +379,6 @@ private:
 
                table->Add (_kdm_directory, 1, wxEXPAND);
 
-               _upload_after_make_dcp = new CheckBox (_panel, _("Default to enabling upload of DCP to TMS"));
-               table->Add (_upload_after_make_dcp, 1, wxEXPAND);
-
                _still_length->SetRange (1, 3600);
                _still_length->Bind (wxEVT_SPINCTRL, boost::bind (&DefaultsPage::still_length_changed, this));
 
@@ -414,8 +411,6 @@ private:
                _standard->Append (_("SMPTE"));
                _standard->Append (_("Interop"));
                _standard->Bind (wxEVT_CHOICE, boost::bind (&DefaultsPage::standard_changed, this));
-
-               _upload_after_make_dcp->Bind (wxEVT_CHECKBOX, boost::bind (&DefaultsPage::upload_after_make_dcp_changed, this));
        }
 
        void config_changed ()
@@ -444,7 +439,6 @@ private:
                checked_set (_dcp_audio_channels, locale_convert<string> (config->default_dcp_audio_channels()));
                checked_set (_audio_delay, config->default_audio_delay ());
                checked_set (_standard, config->default_interop() ? 1 : 0);
-               checked_set (_upload_after_make_dcp, config->default_upload_after_make_dcp());
        }
 
        void j2k_bandwidth_changed ()
@@ -507,11 +501,6 @@ private:
                Config::instance()->set_default_interop (_standard->GetSelection() == 1);
        }
 
-       void upload_after_make_dcp_changed ()
-       {
-               Config::instance()->set_default_upload_after_make_dcp (_upload_after_make_dcp->GetValue ());
-       }
-
        wxSpinCtrl* _j2k_bandwidth;
        wxSpinCtrl* _audio_delay;
        wxButton* _isdcf_metadata_button;
@@ -527,7 +516,6 @@ private:
        wxChoice* _dcp_content_type;
        wxChoice* _dcp_audio_channels;
        wxChoice* _standard;
-       wxCheckBox* _upload_after_make_dcp;
 };
 
 class EncodingServersPage : public StandardPage
@@ -612,6 +600,9 @@ public:
 private:
        void setup ()
        {
+               _upload = new CheckBox (_panel, _("Upload DCP to TMS after creation"));
+               _panel->GetSizer()->Add (_upload, 0, wxALL | wxEXPAND, _border);
+
                wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
                table->AddGrowableCol (1, 1);
                _panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border);
@@ -639,6 +630,7 @@ private:
                _tms_protocol->Append (_("SCP (for AAM and Doremi)"));
                _tms_protocol->Append (_("FTP (for Dolby)"));
 
+               _upload->Bind (wxEVT_CHECKBOX, boost::bind(&TMSPage::upload_changed, this));
                _tms_protocol->Bind (wxEVT_CHOICE, boost::bind (&TMSPage::tms_protocol_changed, this));
                _tms_ip->Bind (wxEVT_TEXT, boost::bind (&TMSPage::tms_ip_changed, this));
                _tms_path->Bind (wxEVT_TEXT, boost::bind (&TMSPage::tms_path_changed, this));
@@ -650,6 +642,7 @@ private:
        {
                Config* config = Config::instance ();
 
+               checked_set (_upload, config->upload_after_make_dcp());
                checked_set (_tms_protocol, config->tms_protocol ());
                checked_set (_tms_ip, config->tms_ip ());
                checked_set (_tms_path, config->tms_path ());
@@ -657,6 +650,11 @@ private:
                checked_set (_tms_password, config->tms_password ());
        }
 
+       void upload_changed ()
+       {
+               Config::instance()->set_upload_after_make_dcp (_upload->GetValue());
+       }
+
        void tms_protocol_changed ()
        {
                Config::instance()->set_tms_protocol(static_cast<FileTransferProtocol>(_tms_protocol->GetSelection()));
@@ -682,6 +680,7 @@ private:
                Config::instance()->set_tms_password (_tms_password->get());
        }
 
+       CheckBox* _upload;
        wxChoice* _tms_protocol;
        wxTextCtrl* _tms_ip;
        wxTextCtrl* _tms_path;