Add option to use (or not) ISDCF names by default.
authorCarl Hetherington <cth@carlh.net>
Wed, 26 Jan 2022 23:03:17 +0000 (00:03 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 9 Mar 2022 16:04:02 +0000 (17:04 +0100)
src/lib/config.cc
src/lib/config.h
src/lib/film.cc
src/wx/full_config_dialog.cc
test/data

index 9b369a81f22442c98d7baa0cfcf27e63d9fc55cb..0de19f70f866d8214529033ebd2e5534e10bf6ac 100644 (file)
@@ -179,6 +179,7 @@ Config::set_defaults ()
        _audio_mapping = boost::none;
        _custom_languages.clear ();
        _add_files_path = boost::none;
+       _use_isdcf_name_by_default = true;
 
        _allowed_dcp_frame_rates.clear ();
        _allowed_dcp_frame_rates.push_back (24);
@@ -565,6 +566,7 @@ try
        }
 
        _add_files_path = f.optional_string_child("AddFilesPath");
+       _use_isdcf_name_by_default = f.optional_bool_child("UseISDCFNameByDefault").get_value_or(true);
 
        if (boost::filesystem::exists (_cinemas_file)) {
                cxml::Document f ("Cinemas");
@@ -994,6 +996,7 @@ Config::write_config () const
                /* [XML] AddFilesPath The default path that will be offered in the picker when adding files to a film. */
                root->add_child("AddFilesPath")->add_child_text(_add_files_path->string());
        }
+       root->add_child("UseISDCFNameByDefault")->add_child_text(_use_isdcf_name_by_default ? "1" : "0");
 
        auto target = config_write_file();
 
index 39704fde14eba7b7cbdf039b5ae03d37b36a7b54..32f9c738ff4c310f8ee5a4ad88ecae5a3bc9fc5c 100644 (file)
@@ -548,6 +548,10 @@ public:
                return _add_files_path;
        }
 
+       bool use_isdcf_name_by_default () const {
+               return _use_isdcf_name_by_default;
+       }
+
        /* SET (mostly) */
 
        void set_master_encoding_threads (int n) {
@@ -1052,6 +1056,10 @@ public:
                changed ();
        }
 
+       void set_use_isdcf_name_by_default (bool use) {
+               maybe_set (_use_isdcf_name_by_default, use);
+       }
+
        void changed (Property p = OTHER);
        boost::signals2::signal<void (Property)> Changed;
        /** Emitted if read() failed on an existing Config file.  There is nothing
@@ -1267,6 +1275,7 @@ private:
        boost::optional<AudioMapping> _audio_mapping;
        std::vector<dcp::LanguageTag> _custom_languages;
        boost::optional<boost::filesystem::path> _add_files_path;
+       bool _use_isdcf_name_by_default;
 
        static int const _current_version;
 
index d0f0106c49b6fb0e2906b53468d76e3e71190e25..5e99e466c4375a04d90484708f11d294321b8c68 100644 (file)
@@ -155,7 +155,7 @@ int const Film::current_state_version = 38;
 
 Film::Film (optional<boost::filesystem::path> dir)
        : _playlist (new Playlist)
-       , _use_isdcf_name (true)
+       , _use_isdcf_name (Config::instance()->use_isdcf_name_by_default())
        , _dcp_content_type (Config::instance()->default_dcp_content_type ())
        , _container (Config::instance()->default_container ())
        , _resolution (Resolution::TWO_K)
index eba81507c7526b8af79bebf4dd92115c270cc318..3fef8ef8bbf183db008d271e470a5aad6119767c 100644 (file)
@@ -334,12 +334,16 @@ private:
 
                table->Add (_kdm_directory, 1, wxEXPAND);
 
+               table->Add (_use_isdcf_name_by_default = new CheckBox(_panel, _("Use ISDCF name by default")), 0, wxALIGN_CENTRE_VERTICAL);
+
                _still_length->SetRange (1, 3600);
                _still_length->Bind (wxEVT_SPINCTRL, boost::bind (&DefaultsPage::still_length_changed, this));
 
                _directory->Bind (wxEVT_DIRPICKER_CHANGED, boost::bind (&DefaultsPage::directory_changed, this));
                _kdm_directory->Bind (wxEVT_DIRPICKER_CHANGED, boost::bind (&DefaultsPage::kdm_directory_changed, this));
 
+               _use_isdcf_name_by_default->Bind (wxEVT_CHECKBOX, boost::bind(&DefaultsPage::use_isdcf_name_by_default_changed, this));
+
                for (auto i: Ratio::containers()) {
                        _container->Append (std_to_wx(i->container_nickname()));
                }
@@ -395,6 +399,7 @@ private:
                checked_set (_still_length, config->default_still_length ());
                _directory->SetPath (std_to_wx (config->default_directory_or (wx_to_std (wxStandardPaths::Get().GetDocumentsDir())).string ()));
                _kdm_directory->SetPath (std_to_wx (config->default_kdm_directory_or (wx_to_std (wxStandardPaths::Get().GetDocumentsDir())).string ()));
+               checked_set (_use_isdcf_name_by_default, config->use_isdcf_name_by_default());
                checked_set (_j2k_bandwidth, config->default_j2k_bandwidth() / 1000000);
                _j2k_bandwidth->SetRange (50, config->maximum_j2k_bandwidth() / 1000000);
                checked_set (_dcp_audio_channels, locale_convert<string> (config->default_dcp_audio_channels()));
@@ -453,6 +458,11 @@ private:
                Config::instance()->set_default_kdm_directory (wx_to_std (_kdm_directory->GetPath ()));
        }
 
+       void use_isdcf_name_by_default_changed ()
+       {
+               Config::instance()->set_use_isdcf_name_by_default (_use_isdcf_name_by_default->GetValue());
+       }
+
        void still_length_changed ()
        {
                Config::instance()->set_default_still_length (_still_length->GetValue ());
@@ -504,6 +514,7 @@ private:
        wxDirPickerCtrl* _directory;
        wxDirPickerCtrl* _kdm_directory;
 #endif
+       wxCheckBox* _use_isdcf_name_by_default;
        wxChoice* _container;
        wxChoice* _dcp_content_type;
        wxChoice* _dcp_audio_channels;
index 6e8b533930445626c7f92bc9a11d2ab36e0546c5..551b4ea593022d046770b9efcc19c2b0ec9604f5 160000 (submodule)
--- a/test/data
+++ b/test/data
@@ -1 +1 @@
-Subproject commit 6e8b533930445626c7f92bc9a11d2ab36e0546c5
+Subproject commit 551b4ea593022d046770b9efcc19c2b0ec9604f5