diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-08-01 01:06:59 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-08-01 01:06:59 +0100 |
| commit | 19dc892c17ab7a0f1ca56116eab6d434c8742846 (patch) | |
| tree | be54e56f616e79e95da0d4e2a7b6911dfa0980bb /src | |
| parent | 1d022220899c63e2cae0a2a9a81f6c6db955a23d (diff) | |
Missing content filename stuff in DCP filename format.
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/config_dialog.cc | 2 | ||||
| -rw-r--r-- | src/wx/name_format_editor.cc | 74 |
2 files changed, 76 insertions, 0 deletions
diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 3f3565122..640f73873 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -1415,11 +1415,13 @@ private: titles['i'] = "unique ID"; titles['r'] = "reel number"; titles['n'] = "number of reels"; + titles['c'] = "content filename"; dcp::NameFormat::Map examples; examples['t'] = "j2c"; examples['i'] = "eb1c112c-ca3c-4ae6-9263-c6714ff05d64"; examples['r'] = "1"; examples['n'] = "4"; + examples['c'] = "myfile.mp4"; _dcp_filename_format = new NameFormatEditor (_panel, Config::instance()->dcp_filename_format(), titles, examples); table->Add (_dcp_filename_format->panel(), 1, wxEXPAND | wxALL); diff --git a/src/wx/name_format_editor.cc b/src/wx/name_format_editor.cc new file mode 100644 index 000000000..7d0915896 --- /dev/null +++ b/src/wx/name_format_editor.cc @@ -0,0 +1,74 @@ +/* + Copyright (C) 2016 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "name_format_editor.h" +#include "wx_util.h" + +NameFormatEditor::NameFormatEditor (wxWindow* parent, dcp::NameFormat name, dcp::NameFormat::Map titles, dcp::NameFormat::Map examples) + : _panel (new wxPanel (parent)) + , _example (new wxStaticText (_panel, wxID_ANY, "")) + , _sizer (new wxBoxSizer (wxVERTICAL)) + , _specification (new wxTextCtrl (_panel, wxID_ANY, "")) + , _name (name) + , _examples (examples) +{ + _sizer->Add (_specification, 0, wxEXPAND, DCPOMATIC_SIZER_Y_GAP); + _sizer->Add (_example, 0, wxBOTTOM, DCPOMATIC_SIZER_Y_GAP); + _panel->SetSizer (_sizer); + + for (dcp::NameFormat::Map::const_iterator i = titles.begin(); i != titles.end(); ++i) { + wxStaticText* t = new wxStaticText (_panel, wxID_ANY, std_to_wx (String::compose ("%%%1 %2", i->first, i->second))); + _sizer->Add (t); + wxFont font = t->GetFont(); + font.SetStyle (wxFONTSTYLE_ITALIC); + font.SetPointSize (font.GetPointSize() - 1); + t->SetFont (font); + t->SetForegroundColour (wxColour (0, 0, 204)); + } + + _specification->SetValue (std_to_wx (_name.specification ())); + _specification->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&NameFormatEditor::changed, this)); + + update_example (); +} + +void +NameFormatEditor::changed () +{ + update_example (); + Changed (); +} + +void +NameFormatEditor::update_example () +{ + _name.set_specification (wx_to_std (_specification->GetValue ())); + + wxString example = wxString::Format (_("e.g. %s"), _name.get (_examples)); + wxString wrapped; + for (size_t i = 0; i < example.Length(); ++i) { + if (i > 0 && (i % 40) == 0) { + wrapped += "\n"; + } + wrapped += example[i]; + } + + _example->SetLabel (wrapped); +} |
