diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-12-13 21:51:40 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-12-13 21:51:40 +0000 |
| commit | c7ae521e655354dd2f27766ee23766a0e698a89c (patch) | |
| tree | aa9c38d9d37c92cea3932fac3cd2465936118adf /src | |
| parent | 3f30355567cb88ee425745e805905d57c6d1bdcd (diff) | |
swaroop: skippable -> disable next/previous.
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/swaroop_controls.cc | 25 | ||||
| -rw-r--r-- | src/wx/swaroop_controls.h | 3 |
2 files changed, 25 insertions, 3 deletions
diff --git a/src/wx/swaroop_controls.cc b/src/wx/swaroop_controls.cc index 6a7cde4e7..6a40e1fc0 100644 --- a/src/wx/swaroop_controls.cc +++ b/src/wx/swaroop_controls.cc @@ -44,6 +44,7 @@ SwaroopControls::SwaroopControls (wxWindow* parent, shared_ptr<FilmViewer> viewe , _next_button (new Button(this, "Next")) , _previous_button (new Button(this, "Previous")) , _current_disable_timeline (false) + , _current_disable_next_previous (false) { _button_sizer->Add (_play_button, 0, wxEXPAND); _button_sizer->Add (_pause_button, 0, wxEXPAND); @@ -144,6 +145,8 @@ SwaroopControls::setup_sensitivity () _pause_button->Enable (_viewer->playing()); _slider->Enable (!_current_disable_timeline); _spl_view->Enable (!_viewer->playing()); + _next_button->Enable (!_current_disable_next_previous && can_do_next()); + _previous_button->Enable (!_current_disable_next_previous && can_do_previous()); } void @@ -159,10 +162,16 @@ SwaroopControls::stop_clicked () _viewer->seek (DCPTime(), true); } +bool +SwaroopControls::can_do_previous () +{ + return _selected_playlist && (_selected_playlist_position - 1) >= 0; +} + void SwaroopControls::previous_clicked () { - if (!_selected_playlist || (_selected_playlist_position - 1) < 0) { + if (!can_do_previous ()) { return; } @@ -170,10 +179,16 @@ SwaroopControls::previous_clicked () update_current_content (); } +bool +SwaroopControls::can_do_next () +{ + return _selected_playlist && (_selected_playlist_position + 1) < int(_playlists[*_selected_playlist].get().size()); +} + void SwaroopControls::next_clicked () { - if (!_selected_playlist || (_selected_playlist_position + 1) >= int(_playlists[*_selected_playlist].get().size())) { + if (!can_do_next ()) { return; } @@ -311,7 +326,11 @@ SwaroopControls::update_current_content () DCPOMATIC_ASSERT (_selected_playlist); _viewer->stop (); - _current_disable_timeline = _playlists[*_selected_playlist].get()[_selected_playlist_position].disable_timeline; + + SPLEntry const & e = _playlists[*_selected_playlist].get()[_selected_playlist_position]; + _current_disable_timeline = e.disable_timeline; + _current_disable_next_previous = e.skippable; + setup_sensitivity (); reset_film (); _viewer->start (); diff --git a/src/wx/swaroop_controls.h b/src/wx/swaroop_controls.h index 91fad1537..2d0d14a67 100644 --- a/src/wx/swaroop_controls.h +++ b/src/wx/swaroop_controls.h @@ -51,6 +51,8 @@ private: void viewer_finished (); void reset_film (); void update_current_content (); + bool can_do_previous (); + bool can_do_next (); wxButton* _play_button; wxButton* _pause_button; @@ -66,6 +68,7 @@ private: wxTextCtrl* _log; bool _current_disable_timeline; + bool _current_disable_next_previous; std::vector<SPL> _playlists; boost::optional<int> _selected_playlist; |
