X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fvideo_panel.cc;h=a5d197c2a15324e81b32e557ed8d45ad0a889931;hb=cf8bbea2de38c4e9ac140f55b27311b7b6dcd814;hp=399e71aac26edba4d752847d0faa4240bb2ead69;hpb=034feb503b0a38eb82c21ae8d9f83522fc63a25c;p=dcpomatic.git diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc index 399e71aac..a5d197c2a 100644 --- a/src/wx/video_panel.cc +++ b/src/wx/video_panel.cc @@ -24,12 +24,13 @@ #include "lib/config.h" #include "lib/util.h" #include "lib/ratio.h" +#include "lib/frame_rate_change.h" #include "filter_dialog.h" #include "video_panel.h" #include "wx_util.h" -#include "film_editor.h" #include "content_colour_conversion_dialog.h" #include "content_widget.h" +#include "content_panel.h" using std::vector; using std::string; @@ -63,8 +64,8 @@ scale_to_index (VideoContentScale scale) assert (false); } -VideoPanel::VideoPanel (FilmEditor* e) - : FilmEditorPanel (e, _("Video")) +VideoPanel::VideoPanel (ContentPanel* p) + : ContentSubPanel (p, _("Video")) { wxGridBagSizer* grid = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); _sizer->Add (grid, 0, wxALL, 8); @@ -221,7 +222,7 @@ VideoPanel::film_changed (Film::Property property) void VideoPanel::film_content_changed (int property) { - VideoContentList vc = _editor->selected_video_content (); + VideoContentList vc = _parent->selected_video (); shared_ptr vcs; shared_ptr fcs; if (!vc.empty ()) { @@ -257,7 +258,7 @@ VideoPanel::film_content_changed (int property) void VideoPanel::edit_filters_clicked () { - FFmpegContentList c = _editor->selected_ffmpeg_content (); + FFmpegContentList c = _parent->selected_ffmpeg (); if (c.size() != 1) { return; } @@ -271,7 +272,7 @@ VideoPanel::edit_filters_clicked () void VideoPanel::setup_description () { - VideoContentList vc = _editor->selected_video_content (); + VideoContentList vc = _parent->selected_video (); if (vc.empty ()) { _description->SetLabel (""); return; @@ -307,8 +308,8 @@ VideoPanel::setup_description () ++lines; } - dcp::Size const container_size = _editor->film()->frame_size (); - dcp::Size const scaled = vcs->scale().size (vcs, container_size, container_size); + dcp::Size const container_size = _parent->film()->frame_size (); + dcp::Size const scaled = vcs->scale().size (vcs, container_size, container_size, 1); if (scaled != vcs->video_size_after_crop ()) { d << wxString::Format ( @@ -330,8 +331,8 @@ VideoPanel::setup_description () d << wxString::Format (_("Content frame rate %.4f\n"), vcs->video_frame_rate ()); ++lines; - FrameRateChange frc (vcs->video_frame_rate(), _editor->film()->video_frame_rate ()); - d << std_to_wx (frc.description) << "\n"; + FrameRateChange frc (vcs->video_frame_rate(), _parent->film()->video_frame_rate ()); + d << std_to_wx (frc.description ()) << "\n"; ++lines; for (int i = lines; i < 6; ++i) { @@ -345,7 +346,7 @@ VideoPanel::setup_description () void VideoPanel::edit_colour_conversion_clicked () { - VideoContentList vc = _editor->selected_video_content (); + VideoContentList vc = _parent->selected_video (); if (vc.size() != 1) { return; } @@ -362,18 +363,19 @@ VideoPanel::edit_colour_conversion_clicked () void VideoPanel::content_selection_changed () { - VideoContentList sel = _editor->selected_video_content (); - bool const single = sel.size() == 1; - - _left_crop->set_content (sel); - _right_crop->set_content (sel); - _top_crop->set_content (sel); - _bottom_crop->set_content (sel); - _frame_type->set_content (sel); - _scale->set_content (sel); - - /* Things that are only allowed with single selections */ - _filters_button->Enable (single); + VideoContentList video_sel = _parent->selected_video (); + FFmpegContentList ffmpeg_sel = _parent->selected_ffmpeg (); + + bool const single = video_sel.size() == 1; + + _left_crop->set_content (video_sel); + _right_crop->set_content (video_sel); + _top_crop->set_content (video_sel); + _bottom_crop->set_content (video_sel); + _frame_type->set_content (video_sel); + _scale->set_content (video_sel); + + _filters_button->Enable (single && !ffmpeg_sel.empty ()); _colour_conversion_button->Enable (single); film_content_changed (VideoContentProperty::VIDEO_CROP);