X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fconfig.cc;h=e3325859f017d98b10a5b39f4e2f4cd40293e83c;hb=e572ffd2e0bdc59cd00103a242d290d89e039c93;hp=81d4ab16038ac1261f9e47630ef5e6c244aec686;hpb=da38c8a0156808595be0aae1b1490069a663fb78;p=dcpomatic.git diff --git a/src/lib/config.cc b/src/lib/config.cc index 81d4ab160..e3325859f 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -33,7 +33,6 @@ #include "filter.h" #include "log.h" #include "ratio.h" -#include "types.h" #include "zipper.h" #include #include @@ -186,7 +185,11 @@ Config::set_defaults () _player_kdm_directory = boost::none; _audio_mapping = boost::none; _custom_languages.clear (); - _add_files_path = boost::none; + _initial_paths.clear(); + _initial_paths["AddFilesPath"] = boost::none; + _initial_paths["AddDKDMPath"] = boost::none; + _initial_paths["SelectCertificatePath"] = boost::none; + _initial_paths["AddCombinerInputPath"] = boost::none; _use_isdcf_name_by_default = true; _write_kdms_to_disk = true; _email_kdms = false; @@ -600,7 +603,9 @@ try } catch (std::runtime_error& e) {} } - _add_files_path = f.optional_string_child("AddFilesPath"); + for (auto& initial: _initial_paths) { + initial.second = f.optional_string_child(initial.first); + } _use_isdcf_name_by_default = f.optional_bool_child("UseISDCFNameByDefault").get_value_or(true); _write_kdms_to_disk = f.optional_bool_child("WriteKDMsToDisk").get_value_or(true); _email_kdms = f.optional_bool_child("EmailKDMs").get_value_or(false); @@ -1072,9 +1077,10 @@ Config::write_config () const for (auto const& i: _custom_languages) { root->add_child("CustomLanguage")->add_child_text(i.to_string()); } - if (_add_files_path) { - /* [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()); + for (auto const& initial: _initial_paths) { + if (initial.second) { + root->add_child(initial.first)->add_child_text(initial.second->string()); + } } root->add_child("UseISDCFNameByDefault")->add_child_text(_use_isdcf_name_by_default ? "1" : "0"); root->add_child("WriteKDMsToDisk")->add_child_text(_write_kdms_to_disk ? "1" : "0"); @@ -1592,3 +1598,22 @@ save_all_config_as_zip (boost::filesystem::path zip_file) zipper.close (); } + +void +Config::set_initial_path(string id, boost::filesystem::path path) +{ + auto iter = _initial_paths.find(id); + DCPOMATIC_ASSERT(iter != _initial_paths.end()); + iter->second = path; + changed(); +} + + +optional +Config::initial_path(string id) const +{ + auto iter = _initial_paths.find(id); + DCPOMATIC_ASSERT(iter != _initial_paths.end()); + return iter->second; +} +