X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fsave_template_dialog.cc;h=6a6644efee2d6e9ade1e4e1deba788edd104f2fd;hb=92933c13e9233149e4e80244d92da81b70072214;hp=eff61a2563a6e505fc40c29859ea810504f5464b;hpb=1a693725f9a8cc6ba58f65b2f1ef03255d295f23;p=dcpomatic.git diff --git a/src/wx/save_template_dialog.cc b/src/wx/save_template_dialog.cc index eff61a256..6a6644efe 100644 --- a/src/wx/save_template_dialog.cc +++ b/src/wx/save_template_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016 Carl Hetherington + Copyright (C) 2016-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -20,9 +20,12 @@ #include "save_template_dialog.h" #include "wx_util.h" -#include +#include "lib/config.h" using std::string; +#if BOOST_VERSION >= 106100 +using namespace boost::placeholders; +#endif SaveTemplateDialog::SaveTemplateDialog (wxWindow* parent) : TableDialog (parent, _("Save template"), 2, 1, true) @@ -31,10 +34,42 @@ SaveTemplateDialog::SaveTemplateDialog (wxWindow* parent) _name = add (new wxTextCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize (300, -1))); _name->SetFocus (); layout (); + + wxButton* ok = dynamic_cast (FindWindowById (wxID_OK, this)); + ok->Bind (wxEVT_BUTTON, boost::bind(&SaveTemplateDialog::check, this, _1)); + + _name->Bind (wxEVT_TEXT, boost::bind(&SaveTemplateDialog::setup_sensitivity, this)); + + setup_sensitivity (); +} + + +void +SaveTemplateDialog::setup_sensitivity () +{ + wxButton* ok = dynamic_cast(FindWindowById(wxID_OK, this)); + if (ok) { + ok->Enable (!_name->GetValue().IsEmpty()); + } } + string SaveTemplateDialog::name () const { return wx_to_std (_name->GetValue ()); } + +void +SaveTemplateDialog::check (wxCommandEvent& ev) +{ + bool ok = true; + + if (Config::instance()->existing_template (wx_to_std (_name->GetValue ()))) { + ok = confirm_dialog (this, _("There is already a template with this name. Do you want to overwrite it?")); + } + + if (ok) { + ev.Skip (); + } +}