Tidy up a bit.
[dcpomatic.git] / src / wx / film_viewer.cc
index 8398b8162634c2ac80a9af5aa1770dd45dba8a33..3c7d76bce03edaf9dad1ab53ebd12e27606f2533 100644 (file)
@@ -47,6 +47,7 @@ public:
        {
        }
 
+       /** Handle a paint event */
        void paint_event (wxPaintEvent& ev)
        {
                if (_current_image != _pending_image) {
@@ -67,6 +68,7 @@ public:
                }
        }
 
+       /** Handle a size event */
        void size_event (wxSizeEvent &)
        {
                if (!_image) {
@@ -101,6 +103,7 @@ public:
                }
        }
 
+       /** Clear our thumbnail image */
        void clear ()
        {
                delete _bitmap;
@@ -128,7 +131,7 @@ private:
                int vw, vh;
                GetSize (&vw, &vh);
 
-               float const target = _film->format() ? _film->format()->ratio_as_float () : 1.78;
+               float const target = _film->format() ? _film->format()->ratio_as_float (_film) : 1.78;
 
                _cropped_image = _image->GetSubImage (
                        wxRect (
@@ -168,7 +171,7 @@ END_EVENT_TABLE ()
 
 FilmViewer::FilmViewer (Film* f, wxWindow* p)
        : wxPanel (p)
-       , _film (f)
+       , _film (0)
 {
        _sizer = new wxBoxSizer (wxVERTICAL);
        SetSizer (_sizer);
@@ -229,6 +232,10 @@ FilmViewer::film_changed (Film::Property p)
 void
 FilmViewer::set_film (Film* f)
 {
+       if (_film == f) {
+               return;
+       }
+       
        _film = f;
        _thumb_panel->set_film (_film);
 
@@ -237,6 +244,7 @@ FilmViewer::set_film (Film* f)
        }
 
        _film->Changed.connect (sigc::mem_fun (*this, &FilmViewer::film_changed));
+       film_changed (Film::CROP);
        film_changed (Film::THUMBS);
        _thumb_panel->refresh ();
        setup_visibility ();