Put subtitle language back into content from the film (#1930).
[dcpomatic.git] / src / wx / timeline_dialog.cc
index d2194f5c750b16e09bbd7680c97809bfc3940fbd..77acb9758e9960dd49709f03b7872673d4e7481c 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013-2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2013-2019 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 using std::list;
 using std::cout;
 using std::string;
-using boost::shared_ptr;
+using std::shared_ptr;
+using std::weak_ptr;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 
-TimelineDialog::TimelineDialog (ContentPanel* cp, shared_ptr<Film> film)
+TimelineDialog::TimelineDialog (ContentPanel* cp, shared_ptr<Film> film, weak_ptr<FilmViewer> viewer)
        : wxDialog (
-               cp->panel(),
+               cp->window(),
                wxID_ANY,
                _("Timeline"),
                wxDefaultPosition,
@@ -51,9 +55,9 @@ TimelineDialog::TimelineDialog (ContentPanel* cp, shared_ptr<Film> film)
 #endif
                )
        , _film (film)
-       , _timeline (this, cp, film)
+       , _timeline (this, cp, film, viewer)
 {
-       wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL);
+       auto sizer = new wxBoxSizer (wxVERTICAL);
 
        wxBitmap select (bitmap_path("select"), wxBITMAP_TYPE_PNG);
        wxBitmap zoom (bitmap_path("zoom"), wxBITMAP_TYPE_PNG);
@@ -87,27 +91,24 @@ TimelineDialog::TimelineDialog (ContentPanel* cp, shared_ptr<Film> film)
        sizer->SetSizeHints (this);
 
         _toolbar->ToggleTool ((int) Timeline::SNAP, _timeline.snap ());
-       film_changed (Film::SEQUENCE);
-
-       _film_changed_connection = film->Changed.connect (bind (&TimelineDialog::film_changed, this, _1));
-}
+       film_change (ChangeType::DONE, Film::Property::SEQUENCE);
 
-wxString
-TimelineDialog::bitmap_path (string name)
-{
-       boost::filesystem::path p = shared_path() / String::compose("%1.png", name);
-       return std_to_wx (p.string());
+       _film_changed_connection = film->Change.connect (bind (&TimelineDialog::film_change, this, _1, _2));
 }
 
 void
-TimelineDialog::film_changed (Film::Property p)
+TimelineDialog::film_change (ChangeType type, Film::Property p)
 {
-       shared_ptr<Film> film = _film.lock ();
+       if (type != ChangeType::DONE) {
+               return;
+       }
+
+       auto film = _film.lock ();
        if (!film) {
                return;
        }
 
-       if (p == Film::SEQUENCE) {
+       if (p == Film::Property::SEQUENCE) {
                _toolbar->ToggleTool ((int) Timeline::SEQUENCE, film->sequence ());
        }
 }
@@ -126,7 +127,7 @@ TimelineDialog::tool_clicked (wxCommandEvent& ev)
        if (t == Timeline::SNAP) {
                _timeline.set_snap (_toolbar->GetToolState ((int) t));
        } else if (t == Timeline::SEQUENCE) {
-               shared_ptr<Film> film = _film.lock ();
+               auto film = _film.lock ();
                if (film) {
                        film->set_sequence (_toolbar->GetToolState ((int) t));
                }