summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-10-15 01:58:54 +0200
committerCarl Hetherington <cth@carlh.net>2022-10-15 23:24:56 +0200
commitae92bd2fbd2a74d14e2635003554aa76016ab425 (patch)
tree404bdba42eba94a9bb377c25b6c58e5072eacad2
parent8df0d52eb09043ac9f156f2886123a4888911d57 (diff)
Make video frame rate option respect OK/Cancel.
-rw-r--r--src/wx/content_advanced_dialog.cc17
-rw-r--r--src/wx/content_advanced_dialog.h4
-rw-r--r--src/wx/content_menu.cc6
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();
+ }
}