summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-12-13 21:51:40 +0000
committerCarl Hetherington <cth@carlh.net>2018-12-13 21:51:40 +0000
commitc7ae521e655354dd2f27766ee23766a0e698a89c (patch)
treeaa9c38d9d37c92cea3932fac3cd2465936118adf /src
parent3f30355567cb88ee425745e805905d57c6d1bdcd (diff)
swaroop: skippable -> disable next/previous.
Diffstat (limited to 'src')
-rw-r--r--src/wx/swaroop_controls.cc25
-rw-r--r--src/wx/swaroop_controls.h3
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;