X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic.cc;h=904e39fdaf3a048a8a2a60d67b9322690364c962;hb=04bd447fd8960625bda5081cbac235b848d7631f;hp=19f2861c4efec265c65a7adf98689b58b476c5f4;hpb=40e334d001eabaf61e7eeff0c5dc788c780b8906;p=dcpomatic.git diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 19f2861c4..904e39fda 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -21,7 +21,7 @@ #include "lib/config.h" #include "lib/util.h" #include "lib/version.h" -#include "lib/ui_signaller.h" +#include "lib/signal_manager.h" #include "lib/log.h" #include "lib/job_manager.h" #include "lib/transcode_job.h" @@ -39,7 +39,7 @@ #include "wx/wx_util.h" #include "wx/new_film_dialog.h" #include "wx/properties_dialog.h" -#include "wx/wx_ui_signaller.h" +#include "wx/wx_signal_manager.h" #include "wx/about_dialog.h" #include "wx/kdm_dialog.h" #include "wx/servers_list_dialog.h" @@ -137,6 +137,7 @@ enum { ID_tools_hints, ID_tools_encoding_servers, ID_tools_check_for_updates, + ID_tools_restore_default_preferences, ID_help_report_a_problem, /* IDs for shortcuts (with no associated menu item) */ ID_add_file @@ -198,6 +199,7 @@ public: Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::tools_hints, this), ID_tools_hints); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::tools_encoding_servers, this), ID_tools_encoding_servers); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::tools_check_for_updates, this), ID_tools_check_for_updates); + Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::tools_restore_default_preferences, this), ID_tools_restore_default_preferences); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::help_about, this), wxID_ABOUT); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::help_report_a_problem, this), ID_help_report_a_problem); @@ -234,6 +236,9 @@ public: Bind (wxEVT_MENU, boost::bind (&ContentPanel::add_file_clicked, _film_editor->content_panel()), ID_add_file); wxAcceleratorTable accel_table (1, accel); SetAcceleratorTable (accel_table); + + /* Instantly save any config changes when using the DCP-o-matic GUI */ + Config::instance()->Changed.connect (boost::bind (&Config::write, Config::instance ())); } void new_film (boost::filesystem::path path) @@ -391,13 +396,25 @@ private: _config_dialog->Show (this); } + void tools_restore_default_preferences () + { + Config::restore_defaults (); + } + void jobs_make_dcp () { double required; double available; + bool can_hard_link; - if (!_film->should_be_enough_disk_space (required, available)) { - if (!confirm_dialog (this, wxString::Format (_("The DCP for this film will take up about %.1f Gb, and the disk that you are using only has %.1f Gb available. Do you want to continue anyway?"), required, available))) { + if (!_film->should_be_enough_disk_space (required, available, can_hard_link)) { + wxString message; + if (can_hard_link) { + message = wxString::Format (_("The DCP for this film will take up about %.1f Gb, and the disk that you are using only has %.1f Gb available. Do you want to continue anyway?"), required, available); + } else { + message = wxString::Format (_("The DCP and intermediate files for this film will take up about %.1f Gb, and the disk that you are using only has %.1f Gb available. You would need half as much space if the filesystem supported hard links, but it does not. Do you want to continue anyway?"), required, available); + } + if (!confirm_dialog (this, message)) { return; } } @@ -679,6 +696,8 @@ private: add_item (tools, _("Hints..."), ID_tools_hints, 0); add_item (tools, _("Encoding servers..."), ID_tools_encoding_servers, 0); add_item (tools, _("Check for updates"), ID_tools_check_for_updates, 0); + tools->AppendSeparator (); + add_item (tools, _("Restore default preferences"), ID_tools_restore_default_preferences, ALWAYS); wxMenu* help = new wxMenu; #ifdef __WXOSX__ @@ -787,12 +806,12 @@ private: /* Enable i18n; this will create a Config object to look for a force-configured language. This Config object will be wrong, however, because dcpomatic_setup - hasn't yet been called and there aren't any scalers, filters etc. + hasn't yet been called and there aren't any filters etc. set up yet. */ dcpomatic_setup_i18n (); - /* Set things up, including scalers / filters etc. + /* Set things up, including filters etc. which will now be internationalised correctly. */ dcpomatic_setup (); @@ -822,7 +841,7 @@ private: } } - ui_signaller = new wxUISignaller (this); + signal_manager = new wxSignalManager (this); Bind (wxEVT_IDLE, boost::bind (&App::idle, this)); Bind (wxEVT_TIMER, boost::bind (&App::check, this)); @@ -890,7 +909,7 @@ private: void idle () { - ui_signaller->ui_idle (); + signal_manager->ui_idle (); } void check ()