summaryrefslogtreecommitdiff
path: root/src/wx
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-07-29 15:54:09 +0100
committerCarl Hetherington <cth@carlh.net>2016-07-29 15:54:09 +0100
commitfe9d2a290682021cd12a00bf21fa4db3012e2049 (patch)
tree9db9c67b4fc29ecd30ab79c9bbf5b5af25ffda8a /src/wx
parent7bdd09c815a8f4ddbb70c9fe3c55fa10b67bc641 (diff)
Basics of custom DCP filename components.
Diffstat (limited to 'src/wx')
-rw-r--r--src/wx/config_dialog.cc26
-rw-r--r--src/wx/kdm_dialog.cc2
-rw-r--r--src/wx/kdm_output_panel.cc2
-rw-r--r--src/wx/name_format_editor.h18
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