Use sensitivity to disallow empty template names, rather than
authorCarl Hetherington <cth@carlh.net>
Wed, 16 Sep 2020 22:05:09 +0000 (00:05 +0200)
committerCarl Hetherington <cth@carlh.net>
Sat, 19 Sep 2020 23:30:41 +0000 (01:30 +0200)
giving an error after the fact.

src/wx/save_template_dialog.cc
src/wx/save_template_dialog.h

index 0440063508dfc2df05b924e3519b54fca25b6c7c..d1f60b8d1c216da414188fe2c9fe656b353e379e 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.
 
@@ -37,9 +37,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 +66,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?"));
        }
 
index 3ccf17ed0254d602249118d8544a48698b018f2a..7e4808ca2c113780a53772571293bc3bf47bc760 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.
 
@@ -28,6 +28,7 @@ public:
        std::string name () const;
 
 private:
+       void setup_sensitivity ();
        void check (wxCommandEvent& ev);
 
        wxTextCtrl* _name;