summaryrefslogtreecommitdiff
path: root/src/wx
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-05-04 15:59:31 +0100
committerCarl Hetherington <cth@carlh.net>2013-05-04 15:59:31 +0100
commitcd4a82d90677cec80e891ac190000cb70767446f (patch)
tree835776cf87239fb13b2da994c2d4285b03d0bea0 /src/wx
parent2cc2dc2aeaec62a4983991170fc5368e10d21748 (diff)
parent1738f2e7336734190bed7e94ce3d691d4a9c9e4c (diff)
Merge master.
Diffstat (limited to 'src/wx')
-rw-r--r--src/wx/config_dialog.cc96
-rw-r--r--src/wx/config_dialog.h10
2 files changed, 100 insertions, 6 deletions
diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc
index e1fc7a20f..50b8990b1 100644
--- a/src/wx/config_dialog.cc
+++ b/src/wx/config_dialog.cc
@@ -31,6 +31,7 @@
#include "lib/format.h"
#include "lib/scaler.h"
#include "lib/filter.h"
+#include "lib/dcp_content_type.h"
#include "config_dialog.h"
#include "wx_util.h"
#include "filter_dialog.h"
@@ -52,6 +53,8 @@ ConfigDialog::ConfigDialog (wxWindow* parent)
_notebook->AddPage (_misc_panel, _("Miscellaneous"), true);
make_servers_panel ();
_notebook->AddPage (_servers_panel, _("Encoding servers"), false);
+ make_metadata_panel ();
+ _notebook->AddPage (_metadata_panel, _("Metadata"), false);
make_tms_panel ();
_notebook->AddPage (_tms_panel, _("TMS"), false);
make_ab_panel ();
@@ -124,6 +127,16 @@ ConfigDialog::make_misc_panel ()
table->Add (_default_dci_metadata_button);
table->AddSpacer (1);
+ add_label_to_sizer (table, _misc_panel, _("Default format"));
+ _default_format = new wxChoice (_misc_panel, wxID_ANY);
+ table->Add (_default_format);
+ table->AddSpacer (1);
+
+ add_label_to_sizer (table, _misc_panel, _("Default content type"));
+ _default_dcp_content_type = new wxChoice (_misc_panel, wxID_ANY);
+ table->Add (_default_dcp_content_type);
+ table->AddSpacer (1);
+
Config* config = Config::instance ();
_set_language->SetValue (config->language ());
@@ -158,6 +171,29 @@ ConfigDialog::make_misc_panel ()
_default_dci_metadata_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (ConfigDialog::edit_default_dci_metadata_clicked), 0, this);
+ vector<Format const *> fmt = Format::all ();
+ int n = 0;
+ for (vector<Format const *>::iterator i = fmt.begin(); i != fmt.end(); ++i) {
+ _default_format->Append (std_to_wx ((*i)->name ()));
+ if (*i == config->default_format ()) {
+ _default_format->SetSelection (n);
+ }
+ ++n;
+ }
+
+ _default_format->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (ConfigDialog::default_format_changed), 0, this);
+
+ vector<DCPContentType const *> const ct = DCPContentType::all ();
+ n = 0;
+ for (vector<DCPContentType const *>::const_iterator i = ct.begin(); i != ct.end(); ++i) {
+ _default_dcp_content_type->Append (std_to_wx ((*i)->pretty_name ()));
+ if (*i == config->default_dcp_content_type ()) {
+ _default_dcp_content_type->SetSelection (n);
+ }
+ ++n;
+ }
+
+ _default_dcp_content_type->Connect (wxID_ANY, wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler (ConfigDialog::default_dcp_content_type_changed), 0, this);
}
void
@@ -230,15 +266,33 @@ ConfigDialog::make_ab_panel ()
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
@@ -477,3 +531,33 @@ ConfigDialog::default_still_length_changed (wxCommandEvent &)
{
Config::instance()->set_default_still_length (_default_still_length->GetValue ());
}
+
+void
+ConfigDialog::default_format_changed (wxCommandEvent &)
+{
+ vector<Format const *> fmt = Format::all ();
+ Config::instance()->set_default_format (fmt[_default_format->GetSelection()]);
+}
+
+void
+ConfigDialog::default_dcp_content_type_changed (wxCommandEvent &)
+{
+ vector<DCPContentType const *> ct = DCPContentType::all ();
+ Config::instance()->set_default_dcp_content_type (ct[_default_dcp_content_type->GetSelection()]);
+}
+
+void
+ConfigDialog::issuer_changed (wxCommandEvent &)
+{
+ libdcp::XMLMetadata m = Config::instance()->dcp_metadata ();
+ m.issuer = wx_to_std (_issuer->GetValue ());
+ Config::instance()->set_dcp_metadata (m);
+}
+
+void
+ConfigDialog::creator_changed (wxCommandEvent &)
+{
+ libdcp::XMLMetadata m = Config::instance()->dcp_metadata ();
+ m.creator = wx_to_std (_creator->GetValue ());
+ Config::instance()->set_dcp_metadata (m);
+}
diff --git a/src/wx/config_dialog.h b/src/wx/config_dialog.h
index 852925e1d..5df1a634f 100644
--- a/src/wx/config_dialog.h
+++ b/src/wx/config_dialog.h
@@ -57,12 +57,17 @@ private:
void edit_server_clicked (wxCommandEvent &);
void remove_server_clicked (wxCommandEvent &);
void server_selection_changed (wxListEvent &);
+ void default_format_changed (wxCommandEvent &);
+ void default_dcp_content_type_changed (wxCommandEvent &);
+ void issuer_changed (wxCommandEvent &);
+ void creator_changed (wxCommandEvent &);
void add_server_to_control (ServerDescription *);
void setup_language_sensitivity ();
void make_misc_panel ();
void make_tms_panel ();
+ void make_metadata_panel ();
void make_ab_panel ();
void make_servers_panel ();
@@ -71,8 +76,11 @@ private:
wxPanel* _tms_panel;
wxPanel* _ab_panel;
wxPanel* _servers_panel;
+ wxPanel* _metadata_panel;
wxCheckBox* _set_language;
wxChoice* _language;
+ wxChoice* _default_format;
+ wxChoice* _default_dcp_content_type;
wxTextCtrl* _tms_ip;
wxTextCtrl* _tms_path;
wxTextCtrl* _tms_user;
@@ -92,5 +100,7 @@ private:
wxButton* _add_server;
wxButton* _edit_server;
wxButton* _remove_server;
+ wxTextCtrl* _issuer;
+ wxTextCtrl* _creator;
};