Cleanup: auto.
[dcpomatic.git] / src / wx / video_panel.cc
index 07a929e1096c6429fd86a06cd67fe6d77bbbccb7..8a02dff25b01acc08e958f05717124dce8f96ad0 100644 (file)
 #include "lib/config.h"
 #include "lib/dcp_content.h"
 #include "lib/ffmpeg_content.h"
+#include "lib/film.h"
 #include "lib/filter.h"
 #include "lib/frame_rate_change.h"
 #include "lib/ratio.h"
 #include "lib/util.h"
 #include "lib/video_content.h"
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
 #include <wx/spinctrl.h>
 #include <wx/tglbtn.h>
+LIBDCP_ENABLE_WARNINGS
 #include <boost/functional/hash.hpp>
 #include <boost/unordered_set.hpp>
 #include <set>
@@ -118,13 +122,13 @@ VideoPanel::create ()
                new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(crop_width, -1)),
                VideoContentProperty::CROP,
                &Content::video,
-               boost::mem_fn (&VideoContent::left_crop),
+               boost::mem_fn (&VideoContent::requested_left_crop),
                boost::mem_fn (&VideoContent::set_left_crop),
                boost::bind (&VideoPanel::left_crop_changed, this)
                );
 
        _left_right_link = new wxToggleButton (this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(link_width, link_height));
-       _left_right_link->SetBitmap (wxBitmap(bitmap_path("link"), wxBITMAP_TYPE_PNG));
+       _left_right_link->SetBitmap (wxBitmap(bitmap_path("link.png"), wxBITMAP_TYPE_PNG));
 
        _right_crop_label = create_label (this, _("Right"), true);
        _right_crop = new ContentSpinCtrl<VideoContent> (
@@ -132,7 +136,7 @@ VideoPanel::create ()
                new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(crop_width, -1)),
                VideoContentProperty::CROP,
                &Content::video,
-               boost::mem_fn (&VideoContent::right_crop),
+               boost::mem_fn (&VideoContent::requested_right_crop),
                boost::mem_fn (&VideoContent::set_right_crop),
                boost::bind (&VideoPanel::right_crop_changed, this)
                );
@@ -143,13 +147,13 @@ VideoPanel::create ()
                new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(crop_width, -1)),
                VideoContentProperty::CROP,
                &Content::video,
-               boost::mem_fn (&VideoContent::top_crop),
+               boost::mem_fn (&VideoContent::requested_top_crop),
                boost::mem_fn (&VideoContent::set_top_crop),
                boost::bind (&VideoPanel::top_crop_changed, this)
                );
 
        _top_bottom_link = new wxToggleButton (this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(link_width, link_height));
-       _top_bottom_link->SetBitmap (wxBitmap(bitmap_path("link"), wxBITMAP_TYPE_PNG));
+       _top_bottom_link->SetBitmap (wxBitmap(bitmap_path("link.png"), wxBITMAP_TYPE_PNG));
 
        _bottom_crop_label = create_label (this, _("Bottom"), true);
        _bottom_crop = new ContentSpinCtrl<VideoContent> (
@@ -157,7 +161,7 @@ VideoPanel::create ()
                new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(crop_width, -1)),
                VideoContentProperty::CROP,
                &Content::video,
-               boost::mem_fn (&VideoContent::bottom_crop),
+               boost::mem_fn (&VideoContent::requested_bottom_crop),
                boost::mem_fn (&VideoContent::set_bottom_crop),
                boost::bind (&VideoPanel::bottom_crop_changed, this)
                );
@@ -217,7 +221,7 @@ VideoPanel::create ()
        _fade_in->Changed.connect (boost::bind (&VideoPanel::fade_in_changed, this));
        _fade_out->Changed.connect (boost::bind (&VideoPanel::fade_out_changed, this));
 
-       _reference->Bind                     (wxEVT_CHECKBOX, boost::bind (&VideoPanel::reference_clicked, this));
+       _reference->bind(&VideoPanel::reference_clicked, this);
        _scale_fit->Bind                     (wxEVT_RADIOBUTTON, boost::bind (&VideoPanel::scale_fit_clicked, this));
        _scale_custom->Bind                  (wxEVT_RADIOBUTTON, boost::bind (&VideoPanel::scale_custom_clicked, this));
        _scale_custom_edit->Bind             (wxEVT_BUTTON,   boost::bind (&VideoPanel::scale_custom_edit_clicked, this));
@@ -340,17 +344,17 @@ VideoPanel::range_changed ()
 
 
 void
-VideoPanel::film_changed (Film::Property property)
+VideoPanel::film_changed(FilmProperty property)
 {
        switch (property) {
-       case Film::Property::VIDEO_FRAME_RATE:
-       case Film::Property::CONTAINER:
-       case Film::Property::RESOLUTION:
+       case FilmProperty::VIDEO_FRAME_RATE:
+       case FilmProperty::CONTAINER:
+       case FilmProperty::RESOLUTION:
                setup_description ();
                setup_sensitivity ();
                break;
-       case Film::Property::REEL_TYPE:
-       case Film::Property::INTEROP:
+       case FilmProperty::REEL_TYPE:
+       case FilmProperty::INTEROP:
                setup_sensitivity ();
                break;
        default:
@@ -384,7 +388,8 @@ VideoPanel::film_content_changed (int property)
        if (property == ContentProperty::VIDEO_FRAME_RATE ||
            property == VideoContentProperty::FRAME_TYPE ||
            property == VideoContentProperty::CROP ||
-           property == VideoContentProperty::SCALE) {
+           property == VideoContentProperty::CUSTOM_RATIO ||
+           property == VideoContentProperty::CUSTOM_SIZE) {
                setup_description ();
        } else if (property == VideoContentProperty::COLOUR_CONVERSION) {
                boost::unordered_set<optional<ColourConversion>> check;
@@ -537,17 +542,16 @@ VideoPanel::edit_colour_conversion_clicked ()
 {
        auto vc = _parent->selected_video ();
 
-       auto d = new ContentColourConversionDialog (this, vc.front()->video->yuv ());
-       d->set (vc.front()->video->colour_conversion().get_value_or (PresetColourConversion::all().front().conversion));
-       if (d->ShowModal() == wxID_OK) {
+       ContentColourConversionDialog dialog(this, vc.front()->video->yuv());
+       dialog.set(vc.front()->video->colour_conversion().get_value_or(PresetColourConversion::all().front().conversion));
+       if (dialog.ShowModal() == wxID_OK) {
                for (auto i: vc) {
-                       i->video->set_colour_conversion (d->get ());
+                       i->video->set_colour_conversion(dialog.get());
                }
        } else {
                /* Reset the colour conversion choice */
                film_content_changed (VideoContentProperty::COLOUR_CONVERSION);
        }
-       d->Destroy ();
 }
 
 
@@ -699,7 +703,10 @@ VideoPanel::scale_fit_clicked ()
 {
        for (auto i: _parent->selected_video()) {
                i->video->set_custom_ratio (optional<float>());
+               i->video->set_custom_size (optional<dcp::Size>());
        }
+
+       setup_sensitivity ();
 }
 
 
@@ -709,6 +716,8 @@ VideoPanel::scale_custom_clicked ()
        if (!scale_custom_edit_clicked()) {
                _scale_fit->SetValue (true);
        }
+
+       setup_sensitivity ();
 }
 
 
@@ -716,16 +725,17 @@ bool
 VideoPanel::scale_custom_edit_clicked ()
 {
        auto vc = _parent->selected_video().front()->video;
-       auto d = new CustomScaleDialog (this, vc->size(), _parent->film()->frame_size(), vc->custom_ratio(), vc->custom_size());
-       int const r = d->ShowModal ();
-       if (r == wxID_OK) {
-               for (auto i: _parent->selected_video()) {
-                       i->video->set_custom_ratio (d->custom_ratio());
-                       i->video->set_custom_size (d->custom_size());
-               }
+       CustomScaleDialog dialog(this, vc->size(), _parent->film()->frame_size(), vc->custom_ratio(), vc->custom_size());
+       if (dialog.ShowModal() != wxID_OK) {
+               return false;
        }
-       d->Destroy ();
-       return r == wxID_OK;
+
+       for (auto i: _parent->selected_video()) {
+               i->video->set_custom_ratio(dialog.custom_ratio());
+               i->video->set_custom_size(dialog.custom_size());
+       }
+
+       return true;
 }
 
 
@@ -756,8 +766,8 @@ VideoPanel::left_crop_changed ()
 {
        _left_changed_last = true;
        if (_left_right_link->GetValue()) {
-               for (auto i: _parent->selected_video()) {
-                       i->video->set_right_crop (i->video->left_crop());
+               for (auto const& i: _parent->selected_video()) {
+                       i->video->set_right_crop (i->video->requested_left_crop());
                }
        }
 }
@@ -768,8 +778,8 @@ VideoPanel::right_crop_changed ()
 {
        _left_changed_last = false;
        if (_left_right_link->GetValue()) {
-               for (auto i: _parent->selected_video()) {
-                       i->video->set_left_crop (i->video->right_crop());
+               for (auto const& i: _parent->selected_video()) {
+                       i->video->set_left_crop (i->video->requested_right_crop());
                }
        }
 }
@@ -781,7 +791,7 @@ VideoPanel::top_crop_changed ()
        _top_changed_last = true;
        if (_top_bottom_link->GetValue()) {
                for (auto i: _parent->selected_video()) {
-                       i->video->set_bottom_crop (i->video->top_crop());
+                       i->video->set_bottom_crop (i->video->requested_top_crop());
                }
        }
 }
@@ -793,10 +803,9 @@ VideoPanel::bottom_crop_changed ()
        _top_changed_last = false;
        if (_top_bottom_link->GetValue()) {
                for (auto i: _parent->selected_video()) {
-                       i->video->set_top_crop (i->video->bottom_crop());
+                       i->video->set_top_crop (i->video->requested_bottom_crop());
                }
        }
 }
 
 
-