Merge master.
[dcpomatic.git] / src / wx / film_editor.cc
index 728098b934ab331e3c10956f8abc22c973df9c90..7fa34c516c60875e0208b0f907adf6d332078b94 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2013 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -72,7 +72,7 @@ using boost::lexical_cast;
 /** @param f Film to edit */
 FilmEditor::FilmEditor (shared_ptr<Film> f, wxWindow* parent)
        : wxPanel (parent)
-       , _menu (f, this)
+       , _menu (this)
        , _generally_sensitive (true)
        , _timeline_dialog (0)
 {
@@ -92,6 +92,8 @@ FilmEditor::FilmEditor (shared_ptr<Film> f, wxWindow* parent)
        JobManager::instance()->ActiveJobsChanged.connect (
                bind (&FilmEditor::active_jobs_changed, this, _1)
                );
+
+       Config::instance()->Changed.connect (boost::bind (&FilmEditor::config_changed, this));
        
        SetSizerAndFit (s);
 }
@@ -177,7 +179,7 @@ FilmEditor::make_dcp_panel ()
                wxSizer* s = new wxBoxSizer (wxHORIZONTAL);
                _j2k_bandwidth = new wxSpinCtrl (_dcp_panel, wxID_ANY);
                s->Add (_j2k_bandwidth, 1);
-               add_label_to_sizer (s, _dcp_panel, _("MBps"), false);
+               add_label_to_sizer (s, _dcp_panel, _("Mbit/s"), false);
                grid->Add (s, wxGBPosition (r, 1));
        }
        ++r;
@@ -213,7 +215,7 @@ FilmEditor::make_dcp_panel ()
        }
 
        _audio_channels->SetRange (0, MAX_AUDIO_CHANNELS);
-       _j2k_bandwidth->SetRange (1, 250);
+       _j2k_bandwidth->SetRange (1, Config::instance()->maximum_j2k_bandwidth() / 1000000);
 
        _resolution->Append (_("2K"));
        _resolution->Append (_("4K"));
@@ -268,23 +270,29 @@ FilmEditor::make_content_panel ()
                _content->InsertColumn (0, wxT(""));
                _content->SetColumnWidth (0, 512);
 
+#ifdef DCPOMATIC_OSX
+               int const pad = 2;
+#else
+               int const pad = 0;
+#endif         
+
                wxBoxSizer* b = new wxBoxSizer (wxVERTICAL);
                _content_add_file = new wxButton (_content_panel, wxID_ANY, _("Add file(s)..."));
-               b->Add (_content_add_file, 1, wxEXPAND | wxLEFT | wxRIGHT);
+               b->Add (_content_add_file, 1, wxEXPAND | wxALL, pad);
                _content_add_folder = new wxButton (_content_panel, wxID_ANY, _("Add folder..."));
-               b->Add (_content_add_folder, 1, wxEXPAND | wxLEFT | wxRIGHT);
+               b->Add (_content_add_folder, 1, wxEXPAND | wxALL, pad);
                _content_remove = new wxButton (_content_panel, wxID_ANY, _("Remove"));
-               b->Add (_content_remove, 1, wxEXPAND | wxLEFT | wxRIGHT);
-               _content_earlier = new wxButton (_content_panel, wxID_UP);
-               b->Add (_content_earlier, 1, wxEXPAND);
-               _content_later = new wxButton (_content_panel, wxID_DOWN);
-               b->Add (_content_later, 1, wxEXPAND);
+               b->Add (_content_remove, 1, wxEXPAND | wxALL, pad);
+               _content_earlier = new wxButton (_content_panel, wxID_ANY, _("Up"));
+               b->Add (_content_earlier, 1, wxEXPAND | wxALL, pad);
+               _content_later = new wxButton (_content_panel, wxID_ANY, _("Down"));
+               b->Add (_content_later, 1, wxEXPAND | wxALL, pad);
                _content_timeline = new wxButton (_content_panel, wxID_ANY, _("Timeline..."));
-               b->Add (_content_timeline, 1, wxEXPAND | wxLEFT | wxRIGHT);
+               b->Add (_content_timeline, 1, wxEXPAND | wxALL, pad);
 
                s->Add (b, 0, wxALL, 4);
 
-               _content_sizer->Add (s, 0.75, wxEXPAND | wxALL, 6);
+               _content_sizer->Add (s, 0, wxEXPAND | wxALL, 6);
        }
 
        _sequence_video = new wxCheckBox (_content_panel, wxID_ANY, _("Keep video in sequence"));
@@ -734,7 +742,7 @@ FilmEditor::setup_content ()
        ContentList content = _film->content ();
        for (ContentList::iterator i = content.begin(); i != content.end(); ++i) {
                int const t = _content->GetItemCount ();
-               bool const valid = (*i)->path_valid ();
+               bool const valid = (*i)->paths_valid ();
 
                string s = (*i)->summary ();
                if (!valid) {
@@ -841,7 +849,7 @@ FilmEditor::setup_content_sensitivity ()
 
        _video_panel->Enable    (video_selection.size() > 0 && _generally_sensitive);
        _audio_panel->Enable    (audio_selection.size() > 0 && _generally_sensitive);
-       _subtitle_panel->Enable (selection.size() == 1 && dynamic_pointer_cast<FFmpegContent> (selection.front()) && _generally_sensitive);
+       _subtitle_panel->Enable (selection.size() == 1 && dynamic_pointer_cast<SubtitleContent> (selection.front()) && _generally_sensitive);
        _timing_panel->Enable   (selection.size() == 1 && _generally_sensitive);
 }
 
@@ -936,7 +944,7 @@ FilmEditor::content_timeline_clicked ()
                _timeline_dialog = 0;
        }
        
-       _timeline_dialog = new DCPTimelineDialog (this, _film);
+       _timeline_dialog = new TimelineDialog (this, _film);
        _timeline_dialog->Show ();
 }
 
@@ -966,7 +974,7 @@ FilmEditor::sequence_video_changed ()
 void
 FilmEditor::content_right_click (wxListEvent& ev)
 {
-       _menu.popup (selected_content (), ev.GetPoint ());
+       _menu.popup (_film, selected_content (), ev.GetPoint ());
 }
 
 void
@@ -998,3 +1006,9 @@ FilmEditor::content_later_clicked ()
                content_selection_changed ();
        }
 }
+
+void
+FilmEditor::config_changed ()
+{
+       _j2k_bandwidth->SetRange (1, Config::instance()->maximum_j2k_bandwidth() / 1000000);
+}