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:09:28 +0000 (23:09 +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.

Backported-from-commit: 50aaa3789864c7330ee92e7e89ad5b6cc2155a82
Backported-from-branch: 2.15.x

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

index 0cc406d022168b9d430ec7368ae9bd7fac1b41e2..2c9b165d00db2671a046b26151b044a219c86b5c 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 cfa29670154db5e4751a23697ce10231b7c74eaa..984a452909e9218d287b541743b02db795631fa5 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.
 
@@ -37,6 +37,7 @@ public:
 
 private:
        void use_template_clicked ();
+       void setup_sensitivity ();
 
        wxTextCtrl* _name;
 #ifdef DCPOMATIC_USE_OWN_PICKER