From 2fd68d37f503776bbe919d6aa01bf9cf6ec6a6dd Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 17 Feb 2024 23:45:23 +0100 Subject: Use FileDialog for saving preferences ZIPs. --- src/tools/dcpomatic.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/tools') diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index c0a182eb6..976842bea 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -757,9 +757,8 @@ private: void tools_export_preferences () { - wxFileDialog dialog( - this, _("Specify ZIP file"), wxEmptyString, wxT("dcpomatic_config.zip"), wxT("ZIP files (*.zip)|*.zip"), - wxFD_SAVE | wxFD_OVERWRITE_PROMPT + FileDialog dialog( + this, _("Specify ZIP file"), wxT("ZIP files (*.zip)|*.zip"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT, "Preferences", string("dcpomatic_config.zip") ); if (dialog.ShowModal() == wxID_OK) { -- cgit v1.2.3 From 9d843365fb77e00dd31c03d1e8ea49126ab550f2 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 15 Feb 2024 01:05:22 +0100 Subject: Add option to load prefs from ZIP (#2771). --- cscript | 2 +- src/lib/config.cc | 33 +++++++++++++++++++++++++++++++++ src/lib/config.h | 2 ++ src/tools/dcpomatic.cc | 13 +++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) (limited to 'src/tools') diff --git a/cscript b/cscript index 8c6c126db..222a911b5 100644 --- a/cscript +++ b/cscript @@ -507,7 +507,7 @@ def dependencies(target, options): # Use distro-provided FFmpeg on Arch deps = [] - deps.append(('libdcp', 'v1.8.96')) + deps.append(('libdcp', 'v1.8.97')) deps.append(('libsub', 'v1.6.47')) deps.append(('leqm-nrt', '30dcaea1373ac62fba050e02ce5b0c1085797a23')) deps.append(('rtaudio', 'f619b76')) diff --git a/src/lib/config.cc b/src/lib/config.cc index f5ad60714..384db5cde 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -32,6 +32,7 @@ #include "filter.h" #include "log.h" #include "ratio.h" +#include "unzipper.h" #include "zipper.h" #include #include @@ -1632,6 +1633,38 @@ save_all_config_as_zip (boost::filesystem::path zip_file) } +void +Config::load_from_zip(boost::filesystem::path zip_file) +{ + Unzipper unzipper(zip_file); + dcp::write_string_to_file(unzipper.get("config.xml"), config_write_file()); + + try { + dcp::write_string_to_file(unzipper.get("cinemas.xml"), cinemas_file()); + dcp::write_string_to_file(unzipper.get("dkdm_recipient.xml"), dkdm_recipients_file()); + } catch (std::runtime_error&) {} + + read(); + + changed(Property::USE_ANY_SERVERS); + changed(Property::SERVERS); + changed(Property::CINEMAS); + changed(Property::DKDM_RECIPIENTS); + changed(Property::SOUND); + changed(Property::SOUND_OUTPUT); + changed(Property::PLAYER_CONTENT_DIRECTORY); + changed(Property::PLAYER_PLAYLIST_DIRECTORY); + changed(Property::PLAYER_DEBUG_LOG); + changed(Property::HISTORY); + changed(Property::SHOW_EXPERIMENTAL_AUDIO_PROCESSORS); + changed(Property::AUDIO_MAPPING); + changed(Property::AUTO_CROP_THRESHOLD); + changed(Property::ALLOW_SMPTE_BV20); + changed(Property::ISDCF_NAME_PART_LENGTH); + changed(Property::OTHER); +} + + void Config::set_initial_path(string id, boost::filesystem::path path) { diff --git a/src/lib/config.h b/src/lib/config.h index dce4aafef..f3d080b0b 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -79,6 +79,8 @@ public: boost::filesystem::path default_directory_or (boost::filesystem::path a) const; boost::filesystem::path default_kdm_directory_or (boost::filesystem::path a) const; + void load_from_zip(boost::filesystem::path zip_file); + enum Property { USE_ANY_SERVERS, SERVERS, diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 976842bea..459ce341c 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -36,6 +36,7 @@ #include "wx/full_config_dialog.h" #include "wx/hints_dialog.h" #include "wx/html_dialog.h" +#include "wx/file_dialog.h" #include "wx/i18n_hook.h" #include "wx/id.h" #include "wx/job_manager_view.h" @@ -244,6 +245,7 @@ enum { ID_tools_system_information, ID_tools_restore_default_preferences, ID_tools_export_preferences, + ID_tools_import_preferences, ID_help_report_a_problem, /* IDs for shortcuts (with no associated menu item) */ ID_add_file, @@ -355,6 +357,7 @@ public: 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::tools_import_preferences, this), ID_tools_import_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); @@ -776,6 +779,15 @@ private: } } + void tools_import_preferences() + { + FileDialog dialog(this, _("Specify ZIP file"), wxT("ZIP files (*.zip)|*.zip"), wxFD_OPEN, "Preferences"); + + if (dialog.show()) { + Config::instance()->load_from_zip(dialog.path()); + } + } + void jobs_make_dcp () { double required; @@ -1393,6 +1405,7 @@ private: add_item (tools, _("Restore default preferences"), ID_tools_restore_default_preferences, ALWAYS); tools->AppendSeparator (); add_item (tools, _("Export preferences..."), ID_tools_export_preferences, ALWAYS); + add_item (tools, _("Import preferences..."), ID_tools_import_preferences, ALWAYS); wxMenu* help = new wxMenu; #ifdef __WXOSX__ -- cgit v1.2.3 From 30282fee32b9f2e9441bc9e4f821dd950d184ed0 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 18 Feb 2024 00:32:13 +0100 Subject: Avoid quotation marks around dumped paths. --- src/tools/dcpomatic_cli.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/tools') diff --git a/src/tools/dcpomatic_cli.cc b/src/tools/dcpomatic_cli.cc index 96bf83086..308b11506 100644 --- a/src/tools/dcpomatic_cli.cc +++ b/src/tools/dcpomatic_cli.cc @@ -96,7 +96,7 @@ print_dump (shared_ptr film) for (auto c: film->content()) { cout << "\n" - << c->path(0) << "\n" + << c->path(0).string() << "\n" << "\tat " << c->position().seconds () << " length " << c->full_length(film).seconds () << " start trim " << c->trim_start().seconds () -- cgit v1.2.3 From 145177aeee61de5a893b3c58beefc9d840674213 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 18 Feb 2024 00:32:37 +0100 Subject: Add film duration to --dump output (#1702). --- src/tools/dcpomatic_cli.cc | 1 + 1 file changed, 1 insertion(+) (limited to 'src/tools') diff --git a/src/tools/dcpomatic_cli.cc b/src/tools/dcpomatic_cli.cc index 308b11506..c07f39add 100644 --- a/src/tools/dcpomatic_cli.cc +++ b/src/tools/dcpomatic_cli.cc @@ -91,6 +91,7 @@ print_dump (shared_ptr film) cout << film->dcp_name (true) << "\n" << film->container()->container_nickname() << " at " << ((film->resolution() == Resolution::TWO_K) ? "2K" : "4K") << "\n" << (film->j2k_bandwidth() / 1000000) << "Mbit/s" << "\n" + << "Duration " << (film->length().timecode(film->video_frame_rate())) << "\n" << "Output " << film->video_frame_rate() << "fps " << (film->three_d() ? "3D" : "2D") << " " << (film->audio_frame_rate() / 1000) << "kHz\n" << (film->interop() ? "Inter-Op" : "SMPTE") << " " << (film->encrypted() ? "encrypted" : "unencrypted") << "\n"; -- cgit v1.2.3