From: Carl Hetherington Date: Mon, 1 Feb 2016 23:19:13 +0000 (+0000) Subject: Synchronise content list / timeline selection when the content list selection changes. X-Git-Tag: v2.6.18~3 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=d511d6702d66b93ead66c067be239173fd2d36f2;hp=c7a0c827d30b7d82ac50e4cf559be2a3606ab6c3;p=dcpomatic.git Synchronise content list / timeline selection when the content list selection changes. --- diff --git a/ChangeLog b/ChangeLog index d573e02fb..3887105ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2016-02-01 Carl Hetherington + * Synchronise content list / timeline selection when + the content list selection changes. + * Move the preview to the start of a piece of content when selecting it (suggested by Carsten Kurz). diff --git a/src/wx/content_panel.cc b/src/wx/content_panel.cc index e86550426..6b2d30b9c 100644 --- a/src/wx/content_panel.cc +++ b/src/wx/content_panel.cc @@ -244,6 +244,10 @@ ContentPanel::selection_changed () if (go_to) { _film_viewer->set_position (go_to.get ()); } + + if (_timeline_dialog) { + _timeline_dialog->set_selection (selected ()); + } } void diff --git a/src/wx/timeline.cc b/src/wx/timeline.cc index 8a61eccb0..8dee9610f 100644 --- a/src/wx/timeline.cc +++ b/src/wx/timeline.cc @@ -462,3 +462,14 @@ Timeline::selected_content () const return sel; } + +void +Timeline::set_selection (ContentList selection) +{ + for (TimelineViewList::iterator i = _views.begin(); i != _views.end(); ++i) { + shared_ptr cv = dynamic_pointer_cast (*i); + if (cv) { + cv->set_selected (find (selection.begin(), selection.end(), cv->content ()) != selection.end ()); + } + } +} diff --git a/src/wx/timeline.h b/src/wx/timeline.h index e8becf906..e8ae2120f 100644 --- a/src/wx/timeline.h +++ b/src/wx/timeline.h @@ -74,6 +74,8 @@ public: return _snap; } + void set_selection (ContentList selection); + private: void paint (); void left_down (wxMouseEvent &); diff --git a/src/wx/timeline_dialog.cc b/src/wx/timeline_dialog.cc index 9caa62933..f054763c8 100644 --- a/src/wx/timeline_dialog.cc +++ b/src/wx/timeline_dialog.cc @@ -94,3 +94,9 @@ TimelineDialog::film_changed (Film::Property p) _sequence_video->SetValue (film->sequence_video ()); } } + +void +TimelineDialog::set_selection (ContentList selection) +{ + _timeline.set_selection (selection); +} diff --git a/src/wx/timeline_dialog.h b/src/wx/timeline_dialog.h index b760c2c5b..bc5b7228b 100644 --- a/src/wx/timeline_dialog.h +++ b/src/wx/timeline_dialog.h @@ -29,6 +29,8 @@ class TimelineDialog : public wxDialog public: TimelineDialog (ContentPanel *, boost::shared_ptr); + void set_selection (ContentList selection); + private: void snap_toggled (); void sequence_video_toggled ();