From 776fa44207f23f2f7a5c92fdf07222dad3229e9a Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 14 Sep 2020 23:07:34 +0200 Subject: [PATCH] Don't allow creation of a new film with no name. Otherwise we try 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 | 16 +++++++++++++++- src/wx/film_name_location_dialog.h | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/wx/film_name_location_dialog.cc b/src/wx/film_name_location_dialog.cc index 0cc406d02..2c9b165d0 100644 --- a/src/wx/film_name_location_dialog.cc +++ b/src/wx/film_name_location_dialog.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2018 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington 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(FindWindowById(wxID_OK, this)); + if (ok) { + ok->Enable (!_name->GetValue().IsEmpty()); + } } + void FilmNameLocationDialog::use_template_clicked () { diff --git a/src/wx/film_name_location_dialog.h b/src/wx/film_name_location_dialog.h index cfa296701..984a45290 100644 --- a/src/wx/film_name_location_dialog.h +++ b/src/wx/film_name_location_dialog.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2014 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington 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 -- 2.30.2