summaryrefslogtreecommitdiff
path: root/src/lib/config.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-01-03 20:34:01 +0100
committerCarl Hetherington <cth@carlh.net>2023-01-03 20:34:01 +0100
commit98a10c9874d28e2e52f7495549b80528372ffbfb (patch)
treee8a4ca41faacfc435e9f331f63ae3abc86536000 /src/lib/config.cc
parentb40f6bc1a3ab39b1bc0fa8fda1f97cb6a01bc85c (diff)
Generalise add_files_path to initial_paths().
Diffstat (limited to 'src/lib/config.cc')
-rw-r--r--src/lib/config.cc33
1 files changed, 28 insertions, 5 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc
index e3be484e2..21e670306 100644
--- a/src/lib/config.cc
+++ b/src/lib/config.cc
@@ -185,7 +185,8 @@ 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;
_use_isdcf_name_by_default = true;
_write_kdms_to_disk = true;
_email_kdms = false;
@@ -599,7 +600,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);
@@ -1071,9 +1074,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");
@@ -1591,3 +1595,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<boost::filesystem::path>
+Config::initial_path(string id) const
+{
+ auto iter = _initial_paths.find(id);
+ DCPOMATIC_ASSERT(iter != _initial_paths.end());
+ return iter->second;
+}
+