+
+ auto metadata = config->default_metadata();
+
+ for (auto const& i: metadata) {
+ _enable_metadata[i.first]->SetValue(true);
+ checked_set (_metadata[i.first], i.second);
+ }
+
+ for (auto const& i: _enable_metadata) {
+ if (metadata.find(i.first) == metadata.end()) {
+ checked_set (i.second, false);
+ }
+ }
+
+ for (auto const& i: _metadata) {
+ if (metadata.find(i.first) == metadata.end()) {
+ checked_set (i.second, wxT(""));
+ }
+ }
+
+ checked_set (_kdm_duration, config->default_kdm_duration().duration);
+ switch (config->default_kdm_duration().unit) {
+ case RoughDuration::Unit::DAYS:
+ _kdm_duration->SetRange(1, 365);
+ checked_set (_kdm_duration_unit, 0);
+ break;
+ case RoughDuration::Unit::WEEKS:
+ _kdm_duration->SetRange(1, 52);
+ checked_set (_kdm_duration_unit, 1);
+ break;
+ case RoughDuration::Unit::MONTHS:
+ _kdm_duration->SetRange(1, 12);
+ checked_set (_kdm_duration_unit, 2);
+ break;
+ case RoughDuration::Unit::YEARS:
+ _kdm_duration->SetRange(1, 40);
+ checked_set (_kdm_duration_unit, 3);
+ break;
+ }
+
+ setup_sensitivity ();
+ }
+
+ void kdm_duration_changed ()
+ {
+ auto config = Config::instance();
+ auto duration = _kdm_duration->GetValue();
+ RoughDuration::Unit unit = RoughDuration::Unit::DAYS;
+ switch (_kdm_duration_unit->GetSelection()) {
+ case 0:
+ unit = RoughDuration::Unit::DAYS;
+ break;
+ case 1:
+ unit = RoughDuration::Unit::WEEKS;
+ break;
+ case 2:
+ unit = RoughDuration::Unit::MONTHS;
+ break;
+ case 3:
+ unit = RoughDuration::Unit::YEARS;
+ break;
+ }
+ config->set_default_kdm_duration (RoughDuration(duration, unit));