X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fwx%2Fsave_template_dialog.cc;h=691d37a1ad46e5444094b92a34a85cf9723616be;hb=0302594838ce422afb3346ecc91a1bdfd26c00de;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..691d37a1a 100644 --- a/src/wx/save_template_dialog.cc +++ b/src/wx/save_template_dialog.cc @@ -20,6 +20,7 @@ #include "save_template_dialog.h" #include "wx_util.h" +#include "lib/config.h" #include using std::string; @@ -31,6 +32,9 @@ 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, bind (&SaveTemplateDialog::check, this, _1)); } string @@ -38,3 +42,20 @@ SaveTemplateDialog::name () const { return wx_to_std (_name->GetValue ()); } + +void +SaveTemplateDialog::check (wxCommandEvent& ev) +{ + bool ok = true; + + if (_name->GetValue().IsEmpty()) { + error_dialog (this, _("Template names must not be empty.")); + ok = false; + } else 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 (); + } +}