#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"
#include "wx/kdm_dialog.h"
#include "wx/nag_dialog.h"
map<wxMenuItem*, int> menu_items;
enum {
- ID_file_new = 1,
+ ID_file_new = DCPOMATIC_MAIN_MENU,
ID_file_open,
ID_file_save,
ID_file_save_as_template,
ID_file_duplicate_and_open,
ID_file_history,
/* Allow spare IDs after _history for the recent files list */
- ID_file_close = 100,
+ ID_file_close = DCPOMATIC_MAIN_MENU + 100,
ID_edit_copy,
ID_edit_paste,
ID_edit_select_all,
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,
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);
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) {
}
}
+ 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;
add_item (edit, _("Select all\tShift-Ctrl-A"), ID_edit_select_all, NEEDS_FILM);
#ifdef __WXOSX__
- add_item (_file_menu, _("&Preferences...\tCtrl-P"), wxID_PREFERENCES, ALWAYS);
+ add_item(_file_menu, _("&Preferences...\tCtrl-,"), wxID_PREFERENCES, ALWAYS);
#else
edit->AppendSeparator ();
/* [Shortcut] Ctrl+P:Open preferences window */
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__
void config_changed (Config::Property what)
{
/* Instantly save any config changes when using the DCP-o-matic GUI */
- if (what == Config::CINEMAS) {
+ switch (what) {
+ case Config::CINEMAS:
try {
Config::instance()->write_cinemas();
} catch (exception& e) {
)
);
}
- } else {
+ break;
+ case Config::DKDM_RECIPIENTS:
+ try {
+ Config::instance()->write_dkdm_recipients();
+ } catch (exception& e) {
+ error_dialog (
+ this,
+ wxString::Format (
+ _("Could not write to DKDM recipients file at %s. Your changes have not been saved."),
+ std_to_wx(Config::instance()->dkdm_recipients_file().string()).data()
+ )
+ );
+ }
+ break;
+ default:
try {
Config::instance()->write_config();
} catch (exception& e) {