diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-03-08 20:04:05 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-03-08 20:04:05 +0000 |
| commit | a9172427858ec747ed5ff6ff4c2ab6eba1613135 (patch) | |
| tree | 8e9082ee9cccf90e320be91651489ed3b52c9577 /src | |
| parent | df499ab4fd81b3cf4686f2e97fd4c9cd339dfdff (diff) | |
Disable show audio button when there is no audio (#73).
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/film.cc | 18 | ||||
| -rw-r--r-- | src/lib/film.h | 2 | ||||
| -rw-r--r-- | src/wx/film_editor.cc | 12 | ||||
| -rw-r--r-- | src/wx/film_editor.h | 1 |
4 files changed, 32 insertions, 1 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index 8f545952b..20e08c037 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -1434,3 +1434,21 @@ Film::have_dcp () const return true; } + +bool +Film::has_audio () const +{ + if (use_content_audio()) { + return audio_stream(); + } + + vector<string> const e = external_audio (); + for (vector<string>::const_iterator i = e.begin(); i != e.end(); ++i) { + if (!i->empty ()) { + return true; + } + } + + return false; +} + diff --git a/src/lib/film.h b/src/lib/film.h index 9921acbb4..88f6fbcd7 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -327,7 +327,7 @@ public: } boost::shared_ptr<AudioStream> audio_stream () const; - + bool has_audio () const; /* SET */ diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc index b9a4012e3..dcd18c97f 100644 --- a/src/wx/film_editor.cc +++ b/src/wx/film_editor.cc @@ -617,6 +617,7 @@ FilmEditor::film_changed (Film::Property p) setup_formats (); setup_subtitle_control_sensitivity (); setup_streams (); + setup_show_audio_sensitivity (); break; case Film::TRUST_CONTENT_HEADER: checked_set (_trust_content_header, _film->trust_content_header ()); @@ -627,6 +628,7 @@ FilmEditor::film_changed (Film::Property p) break; case Film::CONTENT_AUDIO_STREAMS: setup_streams (); + setup_show_audio_sensitivity (); break; case Film::FORMAT: { @@ -754,6 +756,7 @@ FilmEditor::film_changed (Film::Property p) setup_dcp_name (); setup_audio_details (); setup_audio_control_sensitivity (); + setup_show_audio_sensitivity (); break; case Film::USE_CONTENT_AUDIO: checked_set (_use_content_audio, _film->use_content_audio()); @@ -761,6 +764,7 @@ FilmEditor::film_changed (Film::Property p) setup_dcp_name (); setup_audio_details (); setup_audio_control_sensitivity (); + setup_show_audio_sensitivity (); break; case Film::SUBTITLE_STREAM: if (_film->subtitle_stream()) { @@ -774,6 +778,7 @@ FilmEditor::film_changed (Film::Property p) checked_set (_external_audio[i], a[i]); } setup_audio_details (); + setup_show_audio_sensitivity (); break; } case Film::DCP_FRAME_RATE: @@ -915,6 +920,7 @@ FilmEditor::set_things_sensitive (bool s) setup_subtitle_control_sensitivity (); setup_audio_control_sensitivity (); + setup_show_audio_sensitivity (); } /** Called when the `Edit filters' button has been clicked */ @@ -1289,3 +1295,9 @@ FilmEditor::best_dcp_frame_rate_clicked (wxCommandEvent &) _film->set_dcp_frame_rate (best_dcp_frame_rate (_film->source_frame_rate ())); } + +void +FilmEditor::setup_show_audio_sensitivity () +{ + _show_audio->Enable (_film && _film->has_audio ()); +} diff --git a/src/wx/film_editor.h b/src/wx/film_editor.h index 29b453b8b..e5b619886 100644 --- a/src/wx/film_editor.h +++ b/src/wx/film_editor.h @@ -98,6 +98,7 @@ private: void setup_streams (); void setup_audio_details (); void setup_dcp_name (); + void setup_show_audio_sensitivity (); wxControl* video_control (wxControl *); wxControl* still_control (wxControl *); |
