summaryrefslogtreecommitdiff
path: root/src/lib/config.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2017-05-04 10:55:53 +0100
committerCarl Hetherington <cth@carlh.net>2017-05-04 10:55:53 +0100
commitbb80004d3201047a33dd251ea6c3f6de2b47cb3b (patch)
tree8b2520011c7d5f346c2725bb23a551b872850050 /src/lib/config.cc
parent9b1fb6530563dfd8f32a8568d26c768b1006de90 (diff)
Nag users to backup config.xml if they make a DKDM.
Diffstat (limited to 'src/lib/config.cc')
-rw-r--r--src/lib/config.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc
index 9fdf57207..c0ab44923 100644
--- a/src/lib/config.cc
+++ b/src/lib/config.cc
@@ -117,6 +117,9 @@ Config::set_defaults ()
_dcp_metadata_filename_format = dcp::NameFormat ("%t");
_dcp_asset_filename_format = dcp::NameFormat ("%t");
_jump_to_selected = true;
+ for (int i = 0; i < NAG_COUNT; ++i) {
+ _nagged[i] = false;
+ }
_preview_sound = false;
_preview_sound_output = optional<string> ();
@@ -318,6 +321,12 @@ try
_dcp_metadata_filename_format = dcp::NameFormat (f.optional_string_child("DCPMetadataFilenameFormat").get_value_or ("%t"));
_dcp_asset_filename_format = dcp::NameFormat (f.optional_string_child("DCPAssetFilenameFormat").get_value_or ("%t"));
_jump_to_selected = f.optional_bool_child("JumpToSelected").get_value_or (true);
+ BOOST_FOREACH (cxml::NodePtr i, f.node_children("Nagged")) {
+ int const id = i->number_attribute<int>("Id");
+ if (id >= 0 && id < NAG_COUNT) {
+ _nagged[id] = raw_convert<int>(i->content());
+ }
+ }
_preview_sound = f.optional_bool_child("PreviewSound").get_value_or (false);
_preview_sound_output = f.optional_string_child("PreviewSoundOutput");
@@ -496,6 +505,11 @@ Config::write_config () const
root->add_child("DCPMetadataFilenameFormat")->add_child_text (_dcp_metadata_filename_format.specification ());
root->add_child("DCPAssetFilenameFormat")->add_child_text (_dcp_asset_filename_format.specification ());
root->add_child("JumpToSelected")->add_child_text (_jump_to_selected ? "1" : "0");
+ for (int i = 0; i < NAG_COUNT; ++i) {
+ xmlpp::Element* e = root->add_child ("Nagged");
+ e->set_attribute ("Id", raw_convert<string>(i));
+ e->add_child_text (_nagged[i] ? "1" : "0");
+ }
root->add_child("PreviewSound")->add_child_text (_preview_sound ? "1" : "0");
if (_preview_sound_output) {
root->add_child("PreviewSoundOutput")->add_child_text (_preview_sound_output.get());
@@ -686,3 +700,10 @@ Config::delete_template (string name) const
{
boost::filesystem::remove (template_path (name));
}
+
+/** @return Path to the config.xml, for telling the user what it is */
+boost::filesystem::path
+Config::config_path ()
+{
+ return path("config.xml", false);
+}