Don't allow creation of a new film with no name. Otherwise we try
authorCarl Hetherington <cth@carlh.net>
Mon, 14 Sep 2020 21:07:34 +0000 (23:07 +0200)
committerCarl Hetherington <cth@carlh.net>
Mon, 14 Sep 2020 21:07:34 +0000 (23:07 +0200)
to write metadata to the "create in folder" directory, which throws
an uncaught exception if the specified directory is unwriteable.

If we have a name then DoM tries to create the directory with that name,
which fails more elegantly and with a nicer error.

src/wx/film_name_location_dialog.cc
src/wx/film_name_location_dialog.h

index 0cc406d..2c9b165 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -76,8 +76,22 @@ FilmNameLocationDialog::FilmNameLocationDialog (wxWindow* parent, wxString title
        }
 
        layout ();
+
+       _name->Bind (wxEVT_TEXT, bind(&FilmNameLocationDialog::setup_sensitivity, this));
+       setup_sensitivity ();
+}
+
+
+void
+FilmNameLocationDialog::setup_sensitivity ()
+{
+       wxButton* ok = dynamic_cast<wxButton *>(FindWindowById(wxID_OK, this));
+       if (ok) {
+               ok->Enable (!_name->GetValue().IsEmpty());
+       }
 }
 
+
 void
 FilmNameLocationDialog::use_template_clicked ()
 {
index f2f0826..d50ed3b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -40,6 +40,7 @@ public:
 
 private:
        void use_template_clicked ();
+       void setup_sensitivity ();
 
        wxTextCtrl* _name;
 #ifdef DCPOMATIC_USE_OWN_PICKER