Fix failure to remove markers when the checkbox is unticked.
[dcpomatic.git] / src / wx / save_template_dialog.cc
index 0440063508dfc2df05b924e3519b54fca25b6c7c..6a6644efee2d6e9ade1e4e1deba788edd104f2fd 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2016-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -21,7 +21,6 @@
 #include "save_template_dialog.h"
 #include "wx_util.h"
 #include "lib/config.h"
-#include <boost/foreach.hpp>
 
 using std::string;
 #if BOOST_VERSION >= 106100
@@ -37,9 +36,24 @@ SaveTemplateDialog::SaveTemplateDialog (wxWindow* parent)
        layout ();
 
        wxButton* ok = dynamic_cast<wxButton *> (FindWindowById (wxID_OK, this));
-       ok->Bind (wxEVT_BUTTON, bind (&SaveTemplateDialog::check, this, _1));
+       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<wxButton *>(FindWindowById(wxID_OK, this));
+       if (ok) {
+               ok->Enable (!_name->GetValue().IsEmpty());
+       }
 }
 
+
 string
 SaveTemplateDialog::name () const
 {
@@ -51,10 +65,7 @@ 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 ()))) {
+       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?"));
        }