+ ContentList sel = _parent->selected ();
+
+ shared_ptr<DCPContent> dcp;
+ if (sel.size() == 1) {
+ dcp = dynamic_pointer_cast<DCPContent> (sel.front ());
+ }
+
+ list<string> why_not;
+ bool const can_reference = dcp && dcp->can_reference_video (why_not);
+ setup_refer_button (_reference, dcp, can_reference, why_not);
+
+ if (_reference->GetValue ()) {
+ _frame_type->wrapped()->Enable (false);
+ _left_crop->wrapped()->Enable (false);
+ _right_crop->wrapped()->Enable (false);
+ _top_crop->wrapped()->Enable (false);
+ _bottom_crop->wrapped()->Enable (false);
+ _fade_in->Enable (false);
+ _fade_out->Enable (false);
+ _scale->wrapped()->Enable (false);
+ _description->Enable (false);
+ _filters->Enable (false);
+ _filters_button->Enable (false);
+ _colour_conversion->Enable (false);
+ } else {
+ VideoContentList video_sel = _parent->selected_video ();
+ FFmpegContentList ffmpeg_sel = _parent->selected_ffmpeg ();
+ bool const single = video_sel.size() == 1;
+
+ _frame_type->wrapped()->Enable (true);
+ _left_crop->wrapped()->Enable (true);
+ _right_crop->wrapped()->Enable (true);
+ _top_crop->wrapped()->Enable (true);
+ _bottom_crop->wrapped()->Enable (true);
+ _fade_in->Enable (!video_sel.empty ());
+ _fade_out->Enable (!video_sel.empty ());
+ _scale->wrapped()->Enable (true);
+ _description->Enable (true);
+ _filters->Enable (true);
+ _filters_button->Enable (single && !ffmpeg_sel.empty ());
+ _colour_conversion->Enable (single && !video_sel.empty ());
+ }
+