X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic.cc;h=4d494bb632291d1d80b0d30e87f5dd350c7e00c9;hp=a273d008b11948e56aeaba42d784c59bbf08a42e;hb=c80f7a440de73dead499764b4073d39d54c68b9f;hpb=d3636bc868b2a35ab457d84169292aaa33ab5a4b diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index a273d008b..4d494bb63 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -256,6 +256,7 @@ enum { ID_tools_send_translations, ID_tools_system_information, ID_tools_restore_default_preferences, + ID_tools_export_preferences, ID_help_report_a_problem, /* IDs for shortcuts (with no associated menu item) */ ID_add_file, @@ -338,6 +339,7 @@ public: Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_send_translations, this), ID_tools_send_translations); Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_system_information, this),ID_tools_system_information); Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_restore_default_preferences, this), ID_tools_restore_default_preferences); + Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_export_preferences, this), ID_tools_export_preferences); Bind (wxEVT_MENU, boost::bind (&DOMFrame::help_about, this), wxID_ABOUT); Bind (wxEVT_MENU, boost::bind (&DOMFrame::help_report_a_problem, this), ID_help_report_a_problem); @@ -747,6 +749,21 @@ private: } } + void tools_export_preferences () + { + auto dialog = new wxFileDialog ( + this, _("Specify ZIP file"), wxEmptyString, wxT("dcpomatic_config.zip"), wxT("ZIP files (*.zip)|*.zip"), + wxFD_SAVE | wxFD_OVERWRITE_PROMPT + ); + + int const r = dialog->ShowModal (); + dialog->Destroy (); + + if (r == wxID_OK) { + save_all_config_as_zip (wx_to_std(dialog->GetPath())); + } + } + void jobs_make_dcp () { double required; @@ -1375,6 +1392,8 @@ private: add_item (tools, _("System information..."), ID_tools_system_information, 0); tools->AppendSeparator (); add_item (tools, _("Restore default preferences"), ID_tools_restore_default_preferences, ALWAYS); + tools->AppendSeparator (); + add_item (tools, _("Export preferences..."), ID_tools_export_preferences, ALWAYS); wxMenu* help = new wxMenu; #ifdef __WXOSX__ @@ -1433,7 +1452,7 @@ private: int pos = _history_position; - /* Clear out non-existant history items before we re-build the menu */ + /* Clear out non-existent history items before we re-build the menu */ Config::instance()->clean_history (); auto history = Config::instance()->history(); @@ -1807,7 +1826,7 @@ private: switch (reason) { case Config::BAD_SIGNER_UTF8_STRINGS: { - if (config->nagged(Config::NAG_BAD_SIGNER_CHAIN)) { + if (config->nagged(Config::NAG_BAD_SIGNER_CHAIN_UTF8)) { return false; } auto d = new RecreateChainDialog ( @@ -1816,7 +1835,24 @@ private: "which will prevent DCPs from being validated correctly on some systems. Do you want to re-create\n" "the certificate chain for signing DCPs and KDMs?"), _("Do nothing"), - Config::NAG_BAD_SIGNER_CHAIN + Config::NAG_BAD_SIGNER_CHAIN_UTF8 + ); + int const r = d->ShowModal (); + d->Destroy (); + return r == wxID_OK; + } + case Config::BAD_SIGNER_VALIDITY_TOO_LONG: + { + if (config->nagged(Config::NAG_BAD_SIGNER_CHAIN_VALIDITY)) { + return false; + } + auto d = new RecreateChainDialog ( + _frame, _("Recreate signing certificates"), + _("The certificate chain that DCP-o-matic uses for signing DCPs and KDMs has a validity period\n" + "that is too long. This will cause problems playing back DCPs on some systems.\n" + "Do you want to re-create the certificate chain for signing DCPs and KDMs?"), + _("Do nothing"), + Config::NAG_BAD_SIGNER_CHAIN_VALIDITY ); int const r = d->ShowModal (); d->Destroy ();