X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic.cc;h=904e39fdaf3a048a8a2a60d67b9322690364c962;hb=04bd447fd8960625bda5081cbac235b848d7631f;hp=3151b5e1168d8f05b8d9794724c1b620adcc1643;hpb=de55fefe3f977a3552e95400c0e9f5183c14a181;p=dcpomatic.git diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 3151b5e11..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" @@ -128,8 +128,7 @@ enum { ID_file_properties, ID_file_history, /* Allow spare IDs after _history for the recent files list */ - ID_edit_restore_default_preferences = 100, - ID_content_scale_to_fit_width, + ID_content_scale_to_fit_width = 100, ID_content_scale_to_fit_height, ID_jobs_make_dcp, ID_jobs_make_kdms, @@ -138,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 @@ -190,7 +190,6 @@ public: Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::file_history, this, _1), ID_file_history, ID_file_history + HISTORY_SIZE); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::file_exit, this), wxID_EXIT); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::edit_preferences, this), wxID_PREFERENCES); - Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::edit_restore_default_preferences, this), ID_edit_restore_default_preferences); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::content_scale_to_fit_width, this), ID_content_scale_to_fit_width); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::content_scale_to_fit_height, this), ID_content_scale_to_fit_height); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::jobs_make_dcp, this), ID_jobs_make_dcp); @@ -200,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); @@ -236,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) @@ -393,7 +396,7 @@ private: _config_dialog->Show (this); } - void edit_restore_default_preferences () + void tools_restore_default_preferences () { Config::restore_defaults (); } @@ -402,9 +405,16 @@ private: { 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; } } @@ -667,11 +677,9 @@ private: #ifdef __WXOSX__ add_item (_file_menu, _("&Preferences...\tCtrl-P"), wxID_PREFERENCES, ALWAYS); - add_item (_file_menu, _("Restore default preferences"), ID_edit_restore_default_preferences, ALWAYS); #else wxMenu* edit = new wxMenu; add_item (edit, _("&Preferences...\tCtrl-P"), wxID_PREFERENCES, ALWAYS); - add_item (edit, _("Restore default preferences"), ID_edit_restore_default_preferences, ALWAYS); #endif wxMenu* content = new wxMenu; @@ -688,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__ @@ -831,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)); @@ -899,7 +909,7 @@ private: void idle () { - ui_signaller->ui_idle (); + signal_manager->ui_idle (); } void check ()