diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-10-15 01:58:54 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-10-15 23:24:56 +0200 |
| commit | ae92bd2fbd2a74d14e2635003554aa76016ab425 (patch) | |
| tree | 404bdba42eba94a9bb377c25b6c58e5072eacad2 | |
| parent | 8df0d52eb09043ac9f156f2886123a4888911d57 (diff) | |
Make video frame rate option respect OK/Cancel.
| -rw-r--r-- | src/wx/content_advanced_dialog.cc | 17 | ||||
| -rw-r--r-- | src/wx/content_advanced_dialog.h | 4 | ||||
| -rw-r--r-- | src/wx/content_menu.cc | 6 |
3 files changed, 21 insertions, 6 deletions
diff --git a/src/wx/content_advanced_dialog.cc b/src/wx/content_advanced_dialog.cc index 21cba5e8a..ba2c3f43b 100644 --- a/src/wx/content_advanced_dialog.cc +++ b/src/wx/content_advanced_dialog.cc @@ -197,15 +197,20 @@ ContentAdvancedDialog::filters_changed (vector<Filter const *> filters) } -void -ContentAdvancedDialog::set_video_frame_rate () +optional<double> +ContentAdvancedDialog::video_frame_rate() const { - if (_video_frame_rate->GetValue() != wxT("")) { - _content->set_video_frame_rate (locale_convert<double>(wx_to_std(_video_frame_rate->GetValue()))); - } else { - _content->unset_video_frame_rate (); + if (_video_frame_rate->GetValue() == wxT("")) { + return {}; } + return locale_convert<double>(wx_to_std(_video_frame_rate->GetValue())); +} + + +void +ContentAdvancedDialog::set_video_frame_rate () +{ _set_video_frame_rate->Enable (false); } diff --git a/src/wx/content_advanced_dialog.h b/src/wx/content_advanced_dialog.h index 26c1a374a..3c2454449 100644 --- a/src/wx/content_advanced_dialog.h +++ b/src/wx/content_advanced_dialog.h @@ -23,6 +23,7 @@ LIBDCP_DISABLE_WARNINGS #include <wx/wx.h> LIBDCP_ENABLE_WARNINGS +#include <boost/optional.hpp> #include <memory> #include <vector> @@ -38,10 +39,13 @@ public: ContentAdvancedDialog (wxWindow* parent, std::shared_ptr<Content> content); bool ignore_video() const; + std::vector<Filter const*> filters() { return _filters_list; } + boost::optional<double> video_frame_rate() const; + private: void edit_filters (); void filters_changed (std::vector<Filter const *> filters); diff --git a/src/wx/content_menu.cc b/src/wx/content_menu.cc index 6e903397d..3dfb2f282 100644 --- a/src/wx/content_menu.cc +++ b/src/wx/content_menu.cc @@ -480,6 +480,12 @@ ContentMenu::advanced () if (ffmpeg) { ffmpeg->set_filters(dialog->filters()); } + + if (dialog->video_frame_rate()) { + content->set_video_frame_rate(*dialog->video_frame_rate()); + } else { + content->unset_video_frame_rate(); + } } |
