+2017-08-19 Carl Hetherington <cth@carlh.net>
+
+ * Deal with newly-invalid configured default container ratios
+ gracefully.
+
2017-08-18 Carl Hetherington <cth@carlh.net>
* Version 2.11.18 released.
Config* Config::_instance = 0;
boost::signals2::signal<void ()> Config::FailedToLoad;
+boost::signals2::signal<void (string)> Config::Warning;
/** Construct default configuration */
Config::Config ()
_default_container = Ratio::from_id (c.get ());
}
+ if (_default_container && !_default_container->used_for_container()) {
+ Warning (_("Your default container is not valid and has been changed to Flat (1.85:1)"));
+ _default_container = Ratio::from_id ("185");
+ }
+
c = f.optional_string_child ("DefaultScaleTo");
if (c) {
_default_scale_to = Ratio::from_id (c.get ());
root->add_child("Language")->add_child_text (_language.get());
}
if (_default_container) {
- /* [XML:opt] DefaultContainer ID of default container to use when creating new films (<code>119</code>, <code>133</code>,
- <code>138</code>, <code>143</code>, <code>166</code>, <code>178</code>, <code>185</code>, <code>235</code>,
- <code>239</code> or <code>full-frame</code>).
+ /* [XML:opt] DefaultContainer ID of default container
+ * to use when creating new films (<code>185</code>,<code>239</code> or
+ * <code>full-frame</code>).
*/
root->add_child("DefaultContainer")->add_child_text (_default_container->id ());
}
a listener can do about it: this is just for information.
*/
static boost::signals2::signal<void ()> FailedToLoad;
+ /** Emitted if read() issued a warning which the user might want to know about */
+ static boost::signals2::signal<void (std::string)> Warning;
void write () const;
void write_config () const;
std::string container_nickname () const;
+ bool used_for_container () const {
+ return static_cast<bool> (_container_nickname);
+ }
+
std::string isdcf_name () const {
return _isdcf_name;
}
wxInitAllImageHandlers ();
Config::FailedToLoad.connect (boost::bind (&App::config_failed_to_load, this));
+ Config::Warning.connect (boost::bind (&App::config_warning, this, _1));
wxSplashScreen* splash = 0;
try {
message_dialog (_frame, _("The existing configuration failed to load. Default values will be used instead. These may take a short time to create."));
}
+ void config_warning (string m)
+ {
+ message_dialog (_frame, std_to_wx (m));
+ }
+
DOMFrame* _frame;
shared_ptr<wxTimer> _timer;
string _film_to_load;