X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fname_format_editor.cc;h=5755d75f4b0ed6253befb575429feb92e9a699ab;hb=1f88a38a2a607c21988a403e76f315444c4be36b;hp=7d09158962d3bde47554c98f18fa0ccc42d6d123;hpb=19dc892c17ab7a0f1ca56116eab6d434c8742846;p=dcpomatic.git diff --git a/src/wx/name_format_editor.cc b/src/wx/name_format_editor.cc index 7d0915896..5755d75f4 100644 --- a/src/wx/name_format_editor.cc +++ b/src/wx/name_format_editor.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016 Carl Hetherington + Copyright (C) 2016-2018 Carl Hetherington This file is part of DCP-o-matic. @@ -20,21 +20,28 @@ #include "name_format_editor.h" #include "wx_util.h" +#include "static_text.h" +#include "lib/util.h" -NameFormatEditor::NameFormatEditor (wxWindow* parent, dcp::NameFormat name, dcp::NameFormat::Map titles, dcp::NameFormat::Map examples) +using std::string; + +NameFormatEditor::NameFormatEditor (wxWindow* parent, dcp::NameFormat name, dcp::NameFormat::Map titles, dcp::NameFormat::Map examples, string suffix) : _panel (new wxPanel (parent)) - , _example (new wxStaticText (_panel, wxID_ANY, "")) + , _example (new StaticText (_panel, "")) , _sizer (new wxBoxSizer (wxVERTICAL)) , _specification (new wxTextCtrl (_panel, wxID_ANY, "")) , _name (name) , _examples (examples) + , _suffix (suffix) { _sizer->Add (_specification, 0, wxEXPAND, DCPOMATIC_SIZER_Y_GAP); - _sizer->Add (_example, 0, wxBOTTOM, DCPOMATIC_SIZER_Y_GAP); + if (!_examples.empty ()) { + _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))); + wxStaticText* t = new StaticText (_panel, std_to_wx (String::compose ("%%%1 %2", i->first, i->second))); _sizer->Add (t); wxFont font = t->GetFont(); font.SetStyle (wxFONTSTYLE_ITALIC); @@ -44,7 +51,7 @@ NameFormatEditor::NameFormatEditor (wxWindow* parent, dcp::NameFormat name, dcp: } _specification->SetValue (std_to_wx (_name.specification ())); - _specification->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&NameFormatEditor::changed, this)); + _specification->Bind (wxEVT_TEXT, boost::bind (&NameFormatEditor::changed, this)); update_example (); } @@ -59,9 +66,13 @@ NameFormatEditor::changed () void NameFormatEditor::update_example () { - _name.set_specification (wx_to_std (_specification->GetValue ())); + if (_examples.empty ()) { + return; + } + + _name.set_specification (careful_string_filter (wx_to_std (_specification->GetValue ()))); - wxString example = wxString::Format (_("e.g. %s"), _name.get (_examples)); + wxString example = wxString::Format (_("e.g. %s"), std_to_wx (_name.get (_examples, _suffix))); wxString wrapped; for (size_t i = 0; i < example.Length(); ++i) { if (i > 0 && (i % 40) == 0) {