sizer->Add (_burnt_subtitle_language->sizer(), wxGBPosition(r, 1), wxGBSpan(1, 2), wxEXPAND);
++r;
sizer->Add (_burnt_subtitle_language->sizer(), wxGBPosition(r, 1), wxGBSpan(1, 2), wxEXPAND);
++r;
- auto ignore_video = new wxCheckBox (this, wxID_ANY, _("Ignore this content's video and use only audio, subtitles and closed captions"));
- sizer->Add (ignore_video, wxGBPosition(r, 0), wxGBSpan(1, 3));
+ _ignore_video = new wxCheckBox (this, wxID_ANY, _("Ignore this content's video and use only audio, subtitles and closed captions"));
+ sizer->Add(_ignore_video, wxGBPosition(r, 0), wxGBSpan(1, 3));
- ignore_video->Enable (static_cast<bool>(_content->video));
- ignore_video->SetValue (_content->video ? !content->video->use() : false);
+ _ignore_video->Enable(static_cast<bool>(_content->video));
+ _ignore_video->SetValue(_content->video ? !content->video->use() : false);
+
+ auto fcs = dynamic_pointer_cast<FFmpegContent>(content);
+ _filters_allowed = static_cast<bool>(fcs);
+ if (fcs) {
+ _filters_list = fcs->filters();
+ }
_burnt_subtitle->SetValue (_content->video && static_cast<bool>(_content->video->burnt_subtitle_language()));
_burnt_subtitle_language->set (_content->video ? _content->video->burnt_subtitle_language() : boost::none);
_burnt_subtitle->SetValue (_content->video && static_cast<bool>(_content->video->burnt_subtitle_language()));
_burnt_subtitle_language->set (_content->video ? _content->video->burnt_subtitle_language() : boost::none);
_filters_button->Bind (wxEVT_BUTTON, bind(&ContentAdvancedDialog::edit_filters, this));
_set_video_frame_rate->Bind (wxEVT_BUTTON, bind(&ContentAdvancedDialog::set_video_frame_rate, this));
_video_frame_rate->Bind (wxEVT_TEXT, boost::bind(&ContentAdvancedDialog::video_frame_rate_changed, this));
_burnt_subtitle->Bind (wxEVT_CHECKBOX, boost::bind(&ContentAdvancedDialog::burnt_subtitle_changed, this));
_filters_button->Bind (wxEVT_BUTTON, bind(&ContentAdvancedDialog::edit_filters, this));
_set_video_frame_rate->Bind (wxEVT_BUTTON, bind(&ContentAdvancedDialog::set_video_frame_rate, this));
_video_frame_rate->Bind (wxEVT_TEXT, boost::bind(&ContentAdvancedDialog::video_frame_rate_changed, this));
_burnt_subtitle->Bind (wxEVT_CHECKBOX, boost::bind(&ContentAdvancedDialog::burnt_subtitle_changed, this));
checked_set (_filters, _("None"));
_filters->Enable (false);
_filters_button->Enable (false);
return;
}
checked_set (_filters, _("None"));
_filters->Enable (false);
_filters_button->Enable (false);
return;
}
- auto d = new FilterDialog (this, fcs->filters());
- d->ActiveChanged.connect (bind(&ContentAdvancedDialog::filters_changed, this, _1));
- d->ShowModal ();
- d->Destroy ();
+ auto dialog = new FilterDialog(this, _filters_list);
+ ScopeGuard sg = [dialog]() { dialog->Destroy(); };
+
+ dialog->ActiveChanged.connect(bind(&ContentAdvancedDialog::filters_changed, this, _1));
+ dialog->ShowModal();