From: Carl Hetherington Date: Mon, 1 Feb 2016 23:06:23 +0000 (+0000) Subject: Move the preview to the start of a piece of content X-Git-Tag: v2.6.18~4 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=c7a0c827d30b7d82ac50e4cf559be2a3606ab6c3 Move the preview to the start of a piece of content when selecting it. Suggested-by: Carsten Kurz --- diff --git a/ChangeLog b/ChangeLog index dbcc35560..d573e02fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-02-01 Carl Hetherington + + * Move the preview to the start of a piece of content + when selecting it (suggested by Carsten Kurz). + 2016-02-01 c.hetherington * Updated de_DE translation from Carsten Kurz. diff --git a/src/wx/content_panel.cc b/src/wx/content_panel.cc index 06c371348..e86550426 100644 --- a/src/wx/content_panel.cc +++ b/src/wx/content_panel.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2015 Carl Hetherington + Copyright (C) 2012-2016 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ #include "timing_panel.h" #include "timeline_dialog.h" #include "image_sequence_dialog.h" +#include "film_viewer.h" #include "lib/audio_content.h" #include "lib/subtitle_content.h" #include "lib/video_content.h" @@ -48,11 +49,13 @@ using std::vector; using boost::shared_ptr; using boost::weak_ptr; using boost::dynamic_pointer_cast; +using boost::optional; ContentPanel::ContentPanel (wxNotebook* n, boost::shared_ptr film, FilmViewer* viewer) : _timeline_dialog (0) , _parent (n) , _film (film) + , _film_viewer (viewer) , _generally_sensitive (true) { _panel = new wxPanel (n); @@ -111,7 +114,7 @@ ContentPanel::ContentPanel (wxNotebook* n, boost::shared_ptr film, FilmVie _panels.push_back (_audio_panel); _subtitle_panel = new SubtitlePanel (this); _panels.push_back (_subtitle_panel); - _timing_panel = new TimingPanel (this, viewer); + _timing_panel = new TimingPanel (this, _film_viewer); _panels.push_back (_timing_panel); _content->Bind (wxEVT_COMMAND_LIST_ITEM_SELECTED, boost::bind (&ContentPanel::selection_changed, this)); @@ -230,6 +233,17 @@ ContentPanel::selection_changed () BOOST_FOREACH (ContentSubPanel* i, _panels) { i->content_selection_changed (); } + + optional go_to; + BOOST_FOREACH (shared_ptr i, selected ()) { + if (!go_to || i->position() < go_to.get()) { + go_to = i->position (); + } + } + + if (go_to) { + _film_viewer->set_position (go_to.get ()); + } } void diff --git a/src/wx/content_panel.h b/src/wx/content_panel.h index 633ea1bd6..8d11e6289 100644 --- a/src/wx/content_panel.h +++ b/src/wx/content_panel.h @@ -101,5 +101,6 @@ private: wxNotebook* _parent; boost::shared_ptr _film; + FilmViewer* _film_viewer; bool _generally_sensitive; };