summaryrefslogtreecommitdiff
path: root/src/wx
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2019-01-10 20:36:10 +0000
committerCarl Hetherington <cth@carlh.net>2019-01-10 20:36:10 +0000
commitd9c2cf78e6c5e465e7f76020f78f7ed1e71c3bc0 (patch)
tree3744b833c3a717df67d0087ab49cc0c88a696907 /src/wx
parent6835fc7930cc6323e64e07f654f7aaba8fc9e689 (diff)
Add File->Close to main DCP-o-matic (#1180).
Diffstat (limited to 'src/wx')
-rw-r--r--src/wx/content_panel.cc6
-rw-r--r--src/wx/controls.cc5
-rw-r--r--src/wx/dcp_panel.cc9
-rw-r--r--src/wx/film_editor.cc13
4 files changed, 27 insertions, 6 deletions
diff --git a/src/wx/content_panel.cc b/src/wx/content_panel.cc
index 4587b8cc3..318a344f2 100644
--- a/src/wx/content_panel.cc
+++ b/src/wx/content_panel.cc
@@ -667,6 +667,12 @@ ContentPanel::film_content_changed (int property)
void
ContentPanel::setup ()
{
+ if (!_film) {
+ _content->DeleteAllItems ();
+ setup_sensitivity ();
+ return;
+ }
+
ContentList content = _film->content ();
Content* selected_content = 0;
diff --git a/src/wx/controls.cc b/src/wx/controls.cc
index ef93b8597..5e68baaa0 100644
--- a/src/wx/controls.cc
+++ b/src/wx/controls.cc
@@ -371,7 +371,10 @@ Controls::set_film (shared_ptr<Film> film)
}
_film = film;
- _film_change_connection = _film->Change.connect (boost::bind(&Controls::film_change, this, _1, _2));
+
+ if (_film) {
+ _film_change_connection = _film->Change.connect (boost::bind(&Controls::film_change, this, _1, _2));
+ }
setup_sensitivity ();
diff --git a/src/wx/dcp_panel.cc b/src/wx/dcp_panel.cc
index a01db9be3..5ebd0989d 100644
--- a/src/wx/dcp_panel.cc
+++ b/src/wx/dcp_panel.cc
@@ -565,6 +565,13 @@ DCPPanel::set_film (shared_ptr<Film> film)
_film = film;
+ if (!_film) {
+ /* Really should all the film_changed below but this might be enough */
+ checked_set (_dcp_name, wxT(""));
+ set_general_sensitivity (false);
+ return;
+ }
+
film_changed (Film::NAME);
film_changed (Film::USE_ISDCF_NAME);
film_changed (Film::CONTENT);
@@ -628,6 +635,8 @@ DCPPanel::setup_sensitivity ()
_resolution->Enable (_generally_sensitive && _film && !_film->references_dcp_video());
_three_d->Enable (_generally_sensitive && _film && !_film->references_dcp_video());
_standard->Enable (_generally_sensitive && _film && !_film->references_dcp_video() && !_film->references_dcp_audio());
+ _reencode_j2k->Enable (_generally_sensitive && _film);
+ _show_audio->Enable (_generally_sensitive && _film);
}
void
diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc
index 59b44cd8c..a017175f5 100644
--- a/src/wx/film_editor.cc
+++ b/src/wx/film_editor.cc
@@ -125,18 +125,21 @@ FilmEditor::set_film (shared_ptr<Film> film)
_content_panel->set_film (_film);
_dcp_panel->set_film (_film);
- if (_film) {
- _film->Change.connect (bind (&FilmEditor::film_change, this, _1, _2));
- _film->ContentChange.connect (bind (&FilmEditor::film_content_change, this, _1, _3));
+ if (!_film) {
+ FileChanged ("");
+ return;
}
- if (_film && _film->directory()) {
+ _film->Change.connect (bind (&FilmEditor::film_change, this, _1, _2));
+ _film->ContentChange.connect (bind (&FilmEditor::film_content_change, this, _1, _3));
+
+ if (_film->directory()) {
FileChanged (_film->directory().get());
} else {
FileChanged ("");
}
- if (!_film->content().empty ()) {
+ if (!_film->content().empty()) {
_content_panel->set_selection (_film->content().front ());
}
}