Merge master.
[dcpomatic.git] / src / wx / config_dialog.cc
index 98657b666fd09f06e0a69514aa6fac3bc51dd516..50b8990b13a2afcd1c25319512cfc391e9a1275e 100644 (file)
@@ -108,6 +108,11 @@ ConfigDialog::make_misc_panel ()
        table->Add (_num_local_encoding_threads, 1, wxEXPAND);
        table->AddSpacer (0);
 
+       add_label_to_sizer (table, _misc_panel, _("Default duration of still images"));
+       _default_still_length = new wxSpinCtrl (_misc_panel);
+       table->Add (_default_still_length, 1, wxEXPAND);
+       add_label_to_sizer (table, _misc_panel, _("s"));
+
        add_label_to_sizer (table, _misc_panel, _("Default directory for new films"));
 #ifdef __WXMSW__
        _default_directory = new DirPickerCtrl (_misc_panel);
@@ -157,6 +162,10 @@ ConfigDialog::make_misc_panel ()
        _num_local_encoding_threads->SetValue (config->num_local_encoding_threads ());
        _num_local_encoding_threads->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (ConfigDialog::num_local_encoding_threads_changed), 0, this);
 
+       _default_still_length->SetRange (1, 3600);
+       _default_still_length->SetValue (config->default_still_length ());
+       _default_still_length->Connect (wxID_ANY, wxEVT_COMMAND_SPINCTRL_UPDATED, wxCommandEventHandler (ConfigDialog::default_still_length_changed), 0, this);
+
        _default_directory->SetPath (std_to_wx (config->default_directory_or (wx_to_std (wxStandardPaths::Get().GetDocumentsDir()))));
        _default_directory->Connect (wxID_ANY, wxEVT_COMMAND_DIRPICKER_CHANGED, wxCommandEventHandler (ConfigDialog::default_directory_changed), 0, this);
 
@@ -226,33 +235,6 @@ ConfigDialog::make_tms_panel ()
        _tms_password->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::tms_password_changed), 0, this);
 }
 
-void
-ConfigDialog::make_metadata_panel ()
-{
-       _metadata_panel = new wxPanel (_notebook);
-       wxBoxSizer* s = new wxBoxSizer (wxVERTICAL);
-       _metadata_panel->SetSizer (s);
-
-       wxFlexGridSizer* table = new wxFlexGridSizer (2, 6, 6);
-       table->AddGrowableCol (1, 1);
-       s->Add (table, 1, wxALL | wxEXPAND, 8);
-
-       add_label_to_sizer (table, _metadata_panel, _("Issuer"));
-       _issuer = new wxTextCtrl (_metadata_panel, wxID_ANY);
-       table->Add (_issuer, 1, wxEXPAND);
-
-       add_label_to_sizer (table, _metadata_panel, _("Creator"));
-       _creator = new wxTextCtrl (_metadata_panel, wxID_ANY);
-       table->Add (_creator, 1, wxEXPAND);
-
-       Config* config = Config::instance ();
-
-       _issuer->SetValue (std_to_wx (config->dcp_metadata().issuer));
-       _issuer->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::issuer_changed), 0, this);
-       _creator->SetValue (std_to_wx (config->dcp_metadata().creator));
-       _creator->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::creator_changed), 0, this);
-}
-
 void
 ConfigDialog::make_ab_panel ()
 {
@@ -278,21 +260,39 @@ ConfigDialog::make_ab_panel ()
                add_label_to_sizer (table, _ab_panel, _("Reference filters"));
                wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
                _reference_filters = new wxStaticText (_ab_panel, wxID_ANY, wxT (""));
-               s->Add (_reference_filters, 1, wxALIGN_CENTER_VERTICAL | wxEXPAND | wxALL, 6);
+               s->Add (_reference_filters, 1, wxEXPAND);
                _reference_filters_button = new wxButton (_ab_panel, wxID_ANY, _("Edit..."));
                s->Add (_reference_filters_button, 0);
                table->Add (s, 1, wxEXPAND);
                table->AddSpacer (0);
        }
+}
+
+void
+ConfigDialog::make_metadata_panel ()
+{
+       _metadata_panel = new wxPanel (_notebook);
+       wxBoxSizer* s = new wxBoxSizer (wxVERTICAL);
+       _metadata_panel->SetSizer (s);
+
+       wxFlexGridSizer* table = new wxFlexGridSizer (2, 6, 6);
+       table->AddGrowableCol (1, 1);
+       s->Add (table, 1, wxALL | wxEXPAND, 8);
+
+       add_label_to_sizer (table, _metadata_panel, _("Issuer"));
+       _issuer = new wxTextCtrl (_metadata_panel, wxID_ANY);
+       table->Add (_issuer, 1, wxEXPAND);
+
+       add_label_to_sizer (table, _metadata_panel, _("Creator"));
+       _creator = new wxTextCtrl (_metadata_panel, wxID_ANY);
+       table->Add (_creator, 1, wxEXPAND);
 
        Config* config = Config::instance ();
-       
-       _reference_scaler->SetSelection (Scaler::as_index (config->reference_scaler ()));
-       _reference_scaler->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (ConfigDialog::reference_scaler_changed), 0, this);
 
-       pair<string, string> p = Filter::ffmpeg_strings (config->reference_filters ());
-       _reference_filters->SetLabel (std_to_wx (p.first) + N_(" ") + std_to_wx (p.second));
-       _reference_filters_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (ConfigDialog::edit_reference_filters_clicked), 0, this);
+       _issuer->SetValue (std_to_wx (config->dcp_metadata().issuer));
+       _issuer->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::issuer_changed), 0, this);
+       _creator->SetValue (std_to_wx (config->dcp_metadata().creator));
+       _creator->Connect (wxID_ANY, wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler (ConfigDialog::creator_changed), 0, this);
 }
 
 void
@@ -526,6 +526,12 @@ ConfigDialog::setup_language_sensitivity ()
        _language->Enable (_set_language->GetValue ());
 }
 
+void
+ConfigDialog::default_still_length_changed (wxCommandEvent &)
+{
+       Config::instance()->set_default_still_length (_default_still_length->GetValue ());
+}
+
 void
 ConfigDialog::default_format_changed (wxCommandEvent &)
 {