diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-07-29 15:54:09 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-07-29 15:54:09 +0100 |
| commit | fe9d2a290682021cd12a00bf21fa4db3012e2049 (patch) | |
| tree | 9db9c67b4fc29ecd30ab79c9bbf5b5af25ffda8a /src/wx | |
| parent | 7bdd09c815a8f4ddbb70c9fe3c55fa10b67bc641 (diff) | |
Basics of custom DCP filename components.
Diffstat (limited to 'src/wx')
| -rw-r--r-- | src/wx/config_dialog.cc | 26 | ||||
| -rw-r--r-- | src/wx/kdm_dialog.cc | 2 | ||||
| -rw-r--r-- | src/wx/kdm_output_panel.cc | 2 | ||||
| -rw-r--r-- | src/wx/name_format_editor.h | 18 |
4 files changed, 41 insertions, 7 deletions
diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 8b7cbdae5..c82956c60 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -32,6 +32,7 @@ #include "server_dialog.h" #include "make_chain_dialog.h" #include "email_dialog.h" +#include "name_format_editor.h" #include "lib/config.h" #include "lib/ratio.h" #include "lib/filter.h" @@ -1398,6 +1399,24 @@ private: table->Add (_only_servers_encode, 1, wxEXPAND | wxALL); table->AddSpacer (0); + { + int flags = wxALIGN_TOP | wxTOP | wxLEFT; + wxString t = _("DCP filename format"); +#ifdef __WXOSX__ + flags |= wxALIGN_RIGHT; + t += wxT (":"); +#endif + wxStaticText* m = new wxStaticText (_panel, wxID_ANY, t); + table->Add (m, 0, flags, DCPOMATIC_SIZER_Y_GAP); + } + + _dcp_filename_format = new NameFormatEditor<dcp::FilenameFormat> (_panel, Config::instance()->dcp_filename_format()); + dcp::NameFormat::Map example; + example["type"] = "j2c"; + example["id"] = "eb1c112c-ca3c-4ae6-9263-c6714ff05d64"; + _dcp_filename_format->set_example (example); + table->Add (_dcp_filename_format->panel(), 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); @@ -1436,6 +1455,7 @@ private: _maximum_j2k_bandwidth->Bind (wxEVT_COMMAND_SPINCTRL_UPDATED, boost::bind (&AdvancedPage::maximum_j2k_bandwidth_changed, this)); _allow_any_dcp_frame_rate->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AdvancedPage::allow_any_dcp_frame_rate_changed, this)); _only_servers_encode->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AdvancedPage::only_servers_encode_changed, this)); + _dcp_filename_format->Changed.connect (boost::bind (&AdvancedPage::dcp_filename_format_changed, this)); _log_general->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AdvancedPage::log_changed, this)); _log_warning->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AdvancedPage::log_changed, this)); _log_error->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AdvancedPage::log_changed, this)); @@ -1482,6 +1502,11 @@ private: Config::instance()->set_only_servers_encode (_only_servers_encode->GetValue ()); } + void dcp_filename_format_changed () + { + Config::instance()->set_dcp_filename_format (_dcp_filename_format->get ()); + } + void log_changed () { int types = 0; @@ -1519,6 +1544,7 @@ private: wxSpinCtrl* _maximum_j2k_bandwidth; wxCheckBox* _allow_any_dcp_frame_rate; wxCheckBox* _only_servers_encode; + NameFormatEditor<dcp::FilenameFormat>* _dcp_filename_format; wxCheckBox* _log_general; wxCheckBox* _log_warning; wxCheckBox* _log_error; diff --git a/src/wx/kdm_dialog.cc b/src/wx/kdm_dialog.cc index 253050ddf..cd018686e 100644 --- a/src/wx/kdm_dialog.cc +++ b/src/wx/kdm_dialog.cc @@ -133,7 +133,7 @@ KDMDialog::make_clicked () _screens->screens(), _cpl->cpl(), _timing->from(), _timing->until(), _output->formulation() ); - NameFormat::Map name_values; + dcp::NameFormat::Map name_values; name_values["film_name"] = film->name(); name_values["from"] = dcp::LocalTime(_timing->from()).date() + " " + dcp::LocalTime(_timing->from()).time_of_day(); name_values["to"] = dcp::LocalTime(_timing->until()).date() + " " + dcp::LocalTime(_timing->until()).time_of_day(); diff --git a/src/wx/kdm_output_panel.cc b/src/wx/kdm_output_panel.cc index e2510c929..1d9e56f4b 100644 --- a/src/wx/kdm_output_panel.cc +++ b/src/wx/kdm_output_panel.cc @@ -57,7 +57,7 @@ KDMOutputPanel::KDMOutputPanel (wxWindow* parent, bool interop) } _filename_format = new NameFormatEditor<KDMNameFormat> (this, Config::instance()->kdm_filename_format()); - NameFormat::Map ex; + dcp::NameFormat::Map ex; ex["film_name"] = "Bambi"; ex["cinema"] = "Lumière"; ex["screen"] = "Screen 1"; diff --git a/src/wx/name_format_editor.h b/src/wx/name_format_editor.h index ab4787f64..1ca4c0b71 100644 --- a/src/wx/name_format_editor.h +++ b/src/wx/name_format_editor.h @@ -21,8 +21,8 @@ #ifndef DCPOMATIC_NAME_FORMAT_EDITOR_H #define DCPOMATIC_NAME_FORMAT_EDITOR_H -#include "lib/name_format.h" #include "lib/compose.hpp" +#include <dcp/name_format.h> #include <wx/wx.h> #include <boost/foreach.hpp> @@ -41,7 +41,7 @@ public: _sizer->Add (_example, 0, wxBOTTOM, DCPOMATIC_SIZER_Y_GAP); _panel->SetSizer (_sizer); - BOOST_FOREACH (NameFormat::Component c, name.components ()) { + BOOST_FOREACH (dcp::NameFormat::Component c, name.components ()) { wxStaticText* t = new wxStaticText (_panel, wxID_ANY, std_to_wx (String::compose ("%%%1 %2", c.placeholder, c.title))); _sizer->Add (t); wxFont font = t->GetFont(); @@ -52,7 +52,7 @@ public: } _specification->SetValue (std_to_wx (_name.specification ())); - _specification->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&NameFormatEditor::update_example, this)); + _specification->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&NameFormatEditor::changed, this)); update_example (); } @@ -62,7 +62,7 @@ public: return _panel; } - void set_example (NameFormat::Map v) { + void set_example (dcp::NameFormat::Map v) { _example_values = v; update_example (); } @@ -71,8 +71,16 @@ public: return _name; } + boost::signals2::signal<void ()> Changed; + private: + void changed () + { + update_example (); + Changed (); + } + virtual void update_example () { _name.set_specification (wx_to_std (_specification->GetValue ())); @@ -95,7 +103,7 @@ private: wxTextCtrl* _specification; T _name; - NameFormat::Map _example_values; + dcp::NameFormat::Map _example_values; }; #endif |
