X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Fconfig_dialog.cc;h=e71b19e3721438059eec18050e8b814de1e9240b;hp=175ed94ade131a754781e69476f9d6d6f4f3a534;hb=6de35d058821acc092d2aae75543024a97026b8a;hpb=04eebe07e2f64bd15f6887a10ab51fb92c52901a diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 175ed94ad..e71b19e37 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -67,6 +67,14 @@ public: {} protected: + wxPanel* make_panel (wxWindow* parent) + { + wxPanel* panel = new wxPanel (parent, wxID_ANY, wxDefaultPosition, _panel_size); + wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); + panel->SetSizer (s); + return panel; + } + wxSize _panel_size; int _border; }; @@ -81,13 +89,11 @@ public: wxWindow* CreateWindow (wxWindow* parent) { - wxPanel* panel = new wxPanel (parent); - wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); - panel->SetSizer (s); + wxPanel* panel = make_panel (parent); wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); table->AddGrowableCol (1, 1); - s->Add (table, 1, wxALL | wxEXPAND, _border); + panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border); _set_language = new wxCheckBox (panel, wxID_ANY, _("Set language")); table->Add (_set_language, 1); @@ -243,13 +249,11 @@ public: wxWindow* CreateWindow (wxWindow* parent) { - wxPanel* panel = new wxPanel (parent); - wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); - panel->SetSizer (s); + wxPanel* panel = make_panel (parent); wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); table->AddGrowableCol (1, 1); - s->Add (table, 1, wxALL | wxEXPAND, _border); + panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border); { add_label_to_sizer (table, panel, _("Default duration of still images"), true); @@ -306,10 +310,6 @@ public: _issuer = new wxTextCtrl (panel, wxID_ANY); table->Add (_issuer, 1, wxEXPAND); - add_label_to_sizer (table, panel, _("Default creator"), true); - _creator = new wxTextCtrl (panel, wxID_ANY); - table->Add (_creator, 1, wxEXPAND); - Config* config = Config::instance (); _still_length->SetRange (1, 3600); @@ -321,31 +321,31 @@ public: _isdcf_metadata_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&DefaultsPage::edit_isdcf_metadata_clicked, this, parent)); - vector ratio = Ratio::all (); - int n = 0; - for (vector::iterator i = ratio.begin(); i != ratio.end(); ++i) { - _scale->Append (std_to_wx ((*i)->nickname ())); - if (*i == config->default_scale ()) { - _scale->SetSelection (n); + vector scales = VideoContentScale::all (); + for (size_t i = 0; i < scales.size(); ++i) { + _scale->Append (std_to_wx (scales[i].name ())); + if (scales[i] == config->default_scale ()) { + _scale->SetSelection (i); } - _container->Append (std_to_wx ((*i)->nickname ())); - if (*i == config->default_container ()) { - _container->SetSelection (n); + } + + vector ratios = Ratio::all (); + for (size_t i = 0; i < ratios.size(); ++i) { + _container->Append (std_to_wx (ratios[i]->nickname ())); + if (ratios[i] == config->default_container ()) { + _container->SetSelection (i); } - ++n; } _scale->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::scale_changed, this)); _container->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::container_changed, this)); vector const ct = DCPContentType::all (); - n = 0; - for (vector::const_iterator i = ct.begin(); i != ct.end(); ++i) { - _dcp_content_type->Append (std_to_wx ((*i)->pretty_name ())); - if (*i == config->default_dcp_content_type ()) { - _dcp_content_type->SetSelection (n); + for (size_t i = 0; i < ct.size(); ++i) { + _dcp_content_type->Append (std_to_wx (ct[i]->pretty_name ())); + if (ct[i] == config->default_dcp_content_type ()) { + _dcp_content_type->SetSelection (i); } - ++n; } _dcp_content_type->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::dcp_content_type_changed, this)); @@ -358,10 +358,8 @@ public: _audio_delay->SetValue (config->default_audio_delay ()); _audio_delay->Bind (wxEVT_COMMAND_SPINCTRL_UPDATED, boost::bind (&DefaultsPage::audio_delay_changed, this)); - _issuer->SetValue (std_to_wx (config->dcp_metadata().issuer)); + _issuer->SetValue (std_to_wx (config->dcp_issuer ())); _issuer->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&DefaultsPage::issuer_changed, this)); - _creator->SetValue (std_to_wx (config->dcp_metadata().creator)); - _creator->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&DefaultsPage::creator_changed, this)); return panel; } @@ -397,8 +395,8 @@ private: void scale_changed () { - vector ratio = Ratio::all (); - Config::instance()->set_default_scale (ratio[_scale->GetSelection()]); + vector scale = VideoContentScale::all (); + Config::instance()->set_default_scale (scale[_scale->GetSelection()]); } void container_changed () @@ -415,16 +413,7 @@ private: void issuer_changed () { - dcp::XMLMetadata m = Config::instance()->dcp_metadata (); - m.issuer = wx_to_std (_issuer->GetValue ()); - Config::instance()->set_dcp_metadata (m); - } - - void creator_changed () - { - dcp::XMLMetadata m = Config::instance()->dcp_metadata (); - m.creator = wx_to_std (_creator->GetValue ()); - Config::instance()->set_dcp_metadata (m); + Config::instance()->set_dcp_issuer (wx_to_std (_issuer->GetValue ())); } wxSpinCtrl* _j2k_bandwidth; @@ -440,7 +429,6 @@ private: wxChoice* _container; wxChoice* _dcp_content_type; wxTextCtrl* _issuer; - wxTextCtrl* _creator; }; class EncodingServersPage : public wxPreferencesPage, public Page @@ -464,12 +452,10 @@ public: wxWindow* CreateWindow (wxWindow* parent) { - wxPanel* panel = new wxPanel (parent, wxID_ANY, wxDefaultPosition, _panel_size); - wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); - panel->SetSizer (s); + wxPanel* panel = make_panel (parent); _use_any_servers = new wxCheckBox (panel, wxID_ANY, _("Use all servers")); - s->Add (_use_any_servers, 0, wxALL, _border); + panel->GetSizer()->Add (_use_any_servers, 0, wxALL, _border); vector columns; columns.push_back (wx_to_std (_("IP address / host name"))); @@ -481,7 +467,7 @@ public: boost::bind (&EncodingServersPage::server_column, this, _1) ); - s->Add (_servers_list, 1, wxEXPAND | wxALL, _border); + panel->GetSizer()->Add (_servers_list, 1, wxEXPAND | wxALL, _border); _use_any_servers->SetValue (Config::instance()->use_any_servers ()); _use_any_servers->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&EncodingServersPage::use_any_servers_changed, this)); @@ -525,9 +511,7 @@ public: #endif wxWindow* CreateWindow (wxWindow* parent) { - wxPanel* panel = new wxPanel (parent, wxID_ANY, wxDefaultPosition, _panel_size); - wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); - panel->SetSizer (s); + wxPanel* panel = make_panel (parent); vector columns; columns.push_back (wx_to_std (_("Name"))); @@ -540,7 +524,7 @@ public: 300 ); - s->Add (list, 1, wxEXPAND | wxALL, _border); + panel->GetSizer()->Add (list, 1, wxEXPAND | wxALL, _border); return panel; } @@ -876,13 +860,11 @@ public: wxWindow* CreateWindow (wxWindow* parent) { - wxPanel* panel = new wxPanel (parent, wxID_ANY, wxDefaultPosition, _panel_size); - wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); - panel->SetSizer (s); + wxPanel* panel = make_panel (parent); wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); table->AddGrowableCol (1, 1); - s->Add (table, 1, wxALL | wxEXPAND, _border); + panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border); add_label_to_sizer (table, panel, _("IP address"), true); _tms_ip = new wxTextCtrl (panel, wxID_ANY); @@ -963,18 +945,18 @@ public: wxWindow* CreateWindow (wxWindow* parent) { +#ifdef DCPOMATIC_OSX /* We have to force both width and height of this one */ -#ifdef DCPOMATIC_OSX wxPanel* panel = new wxPanel (parent, wxID_ANY, wxDefaultPosition, wxSize (480, 128)); -#else +#else wxPanel* panel = new wxPanel (parent); -#endif +#endif wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); panel->SetSizer (s); wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); table->AddGrowableCol (1, 1); - s->Add (table, 1, wxEXPAND | wxALL, _border); + panel->GetSizer()->Add (table, 1, wxEXPAND | wxALL, _border); add_label_to_sizer (table, panel, _("Outgoing mail server"), true); _mail_server = new wxTextCtrl (panel, wxID_ANY); @@ -1012,10 +994,10 @@ public: table->Add (_kdm_bcc, 1, wxEXPAND | wxALL); _kdm_email = new wxTextCtrl (panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (480, 128), wxTE_MULTILINE); - s->Add (_kdm_email, 1, wxEXPAND | wxALL, _border); + panel->GetSizer()->Add (_kdm_email, 1, wxEXPAND | wxALL, _border); _reset_kdm_email = new wxButton (panel, wxID_ANY, _("Reset to default text")); - s->Add (_reset_kdm_email, 0, wxEXPAND | wxALL, _border); + panel->GetSizer()->Add (_reset_kdm_email, 0, wxEXPAND | wxALL, _border); Config* config = Config::instance (); _mail_server->SetValue (std_to_wx (config->mail_server ())); @@ -1097,6 +1079,9 @@ private: wxButton* _reset_kdm_email; }; +/** @class AdvancedPage + * @brief Advanced page of the preferences dialog. + */ class AdvancedPage : public wxStockPreferencesPage, public Page { public: @@ -1108,14 +1093,11 @@ public: wxWindow* CreateWindow (wxWindow* parent) { - wxPanel* panel = new wxPanel (parent); - - wxBoxSizer* s = new wxBoxSizer (wxVERTICAL); - panel->SetSizer (s); + wxPanel* panel = make_panel (parent); wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); table->AddGrowableCol (1, 1); - s->Add (table, 1, wxALL | wxEXPAND, _border); + panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border); { add_label_to_sizer (table, panel, _("Maximum JPEG2000 bandwidth"), true); @@ -1130,18 +1112,26 @@ public: table->Add (_allow_any_dcp_frame_rate, 1, wxEXPAND | wxALL); table->AddSpacer (0); - add_label_to_sizer (table, panel, _("Log"), true); - _log_general = new wxCheckBox (panel, wxID_ANY, _("General")); - table->Add (_log_general, 1, wxEXPAND | wxALL); - _log_warning = new wxCheckBox (panel, wxID_ANY, _("Warnings")); - table->AddSpacer (0); - table->Add (_log_warning, 1, wxEXPAND | wxALL); - _log_error = new wxCheckBox (panel, wxID_ANY, _("Errors")); - table->AddSpacer (0); - table->Add (_log_error, 1, wxEXPAND | wxALL); - _log_timing = new wxCheckBox (panel, wxID_ANY, S_("Config|Timing")); - table->AddSpacer (0); - table->Add (_log_timing, 1, wxEXPAND | wxALL); +#ifdef __WXOSX__ + wxStaticText* m = new wxStaticText (panel, wxID_ANY, _("Log:")); + table->Add (m, 0, wxALIGN_TOP | wxLEFT | wxRIGHT | wxEXPAND | wxALL | wxALIGN_RIGHT, 6); +#else + wxStaticText* m = new wxStaticText (panel, wxID_ANY, _("Log")); + table->Add (m, 0, wxALIGN_TOP | wxLEFT | wxRIGHT | wxEXPAND | wxALL, 6); +#endif + + { + wxBoxSizer* t = new wxBoxSizer (wxVERTICAL); + _log_general = new wxCheckBox (panel, wxID_ANY, _("General")); + t->Add (_log_general, 1, wxEXPAND | wxALL); + _log_warning = new wxCheckBox (panel, wxID_ANY, _("Warnings")); + t->Add (_log_warning, 1, wxEXPAND | wxALL); + _log_error = new wxCheckBox (panel, wxID_ANY, _("Errors")); + t->Add (_log_error, 1, wxEXPAND | wxALL); + _log_timing = new wxCheckBox (panel, wxID_ANY, S_("Config|Timing")); + t->Add (_log_timing, 1, wxEXPAND | wxALL); + table->Add (t, 0, wxALL, 6); + } Config* config = Config::instance (); @@ -1210,7 +1200,7 @@ create_config_dialog () the containing window doesn't shrink too much when we select those panels. This is obviously an unpleasant hack. */ - wxSize ps = wxSize (480, -1); + wxSize ps = wxSize (520, -1); int const border = 16; #else wxSize ps = wxSize (-1, -1);